| 95 | } |
| 96 | |
| 97 | void |
| 98 | sctp_startup_iterator(void) |
| 99 | { |
| 100 | if (sctp_it_ctl.thread_proc) { |
| 101 | /* You only get one */ |
| 102 | return; |
| 103 | } |
| 104 | /* Initialize global locks here, thus only once. */ |
| 105 | SCTP_ITERATOR_LOCK_INIT(); |
| 106 | SCTP_IPI_ITERATOR_WQ_INIT(); |
| 107 | TAILQ_INIT(&sctp_it_ctl.iteratorhead); |
| 108 | kproc_create(sctp_iterator_thread, |
| 109 | (void *)NULL, |
| 110 | &sctp_it_ctl.thread_proc, |
| 111 | RFPROC, |
| 112 | SCTP_KTHREAD_PAGES, |
| 113 | SCTP_KTRHEAD_NAME); |
| 114 | } |
| 115 | |
| 116 | #ifdef INET6 |
| 117 |
no test coverage detected