THR_FLAGS_NEED_SUSPEND
new_thread->flags = THR_FLAGS_NEED_SUSPEND;
if (new_thread->flags & THR_FLAGS_NEED_SUSPEND) {
if (curthread->flags & THR_FLAGS_NEED_SUSPEND) {
curthread->flags &= ~(THR_FLAGS_NEED_SUSPEND|THR_FLAGS_DETACHED);
thread->flags &= ~(THR_FLAGS_NEED_SUSPEND | THR_FLAGS_SUSPENDED);
if (__predict_true((curthread->flags & (THR_FLAGS_NEED_SUSPEND |
THR_FLAGS_SUSPENDED)) != THR_FLAGS_NEED_SUSPEND))
while ((curthread->flags & THR_FLAGS_NEED_SUSPEND) != 0) {
thread->flags |= THR_FLAGS_NEED_SUSPEND;
thread->flags |= THR_FLAGS_NEED_SUSPEND;