| 129 | } // namespace bthread |
| 130 | |
| 131 | __BEGIN_DECLS |
| 132 | |
| 133 | int bthread_sem_init(bthread_sem_t* sem, unsigned value) { |
| 134 | sem->butex = bthread::butex_create_checked<unsigned>(); |
| 135 | if (!sem->butex) { |
| 136 | return ENOMEM; |
| 137 | } |
| 138 | *sem->butex = value; |
| 139 | sem->enable_csite = true; |
| 140 | return 0; |
| 141 | } |
| 142 | |
| 143 | int bthread_sem_disable_csite(bthread_sem_t* sema) { |
| 144 | sema->enable_csite = false; |
no outgoing calls