| 564 | } |
| 565 | |
| 566 | int bthread_yield(void) { |
| 567 | bthread::TaskGroup* g = bthread::BAIDU_GET_VOLATILE_THREAD_LOCAL(tls_task_group); |
| 568 | if (NULL != g && !g->is_current_pthread_task()) { |
| 569 | bthread::TaskGroup::yield(&g); |
| 570 | return 0; |
| 571 | } |
| 572 | // pthread_yield is not available on MAC |
| 573 | return sched_yield(); |
| 574 | } |
| 575 | |
| 576 | int bthread_set_worker_startfn(void (*start_fn)()) { |
| 577 | if (start_fn == NULL) { |