| 139 | return need_join; /* true */ |
| 140 | } |
| 141 | void join() { |
| 142 | if (!need_join) { |
| 143 | return; |
| 144 | } |
| 145 | int e = 0; |
| 146 | if ((e = pthread_join(thr, 0)) != 0) { |
| 147 | fatal_abort("pthread_join"); |
| 148 | } |
| 149 | need_join = false; |
| 150 | } |
| 151 | private: |
| 152 | static void *thread_main(void *arg) { |
| 153 | thread_base *p = static_cast<thread_base *>(arg); |