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)
thread->flags &= ~THR_FLAGS_NEED_SUSPEND;
(THR_FLAGS_NEED_SUSPEND | THR_FLAGS_SUSPENDED))
== THR_FLAGS_NEED_SUSPEND))
while ((curthread->flags & (THR_FLAGS_NEED_SUSPEND |
THR_FLAGS_SUSPENDED)) == THR_FLAGS_NEED_SUSPEND) {
thread->flags |= THR_FLAGS_NEED_SUSPEND;
thread->flags |= THR_FLAGS_NEED_SUSPEND;