@@ -421,21 +421,20 @@ raw_queue_pop :: proc "contextless" (q: ^Raw_Queue) -> (data: rawptr) {
@(require_results)
can_recv :: proc "contextless" (c: ^Raw_Chan) -> bool {
+ sync.guard(&c.mutex)
if is_buffered(c) {
return len(c) > 0
}
- sync.guard(&c.mutex)
return sync.atomic_load(&c.w_waiting) > 0
can_send :: proc "contextless" (c: ^Raw_Chan) -> bool {
return len(c) < cap(c)
return sync.atomic_load(&c.r_waiting) > 0