mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 07:08:48 +00:00
Move around mutex guard
This commit is contained in:
@@ -421,21 +421,20 @@ raw_queue_pop :: proc "contextless" (q: ^Raw_Queue) -> (data: rawptr) {
|
|||||||
|
|
||||||
@(require_results)
|
@(require_results)
|
||||||
can_recv :: proc "contextless" (c: ^Raw_Chan) -> bool {
|
can_recv :: proc "contextless" (c: ^Raw_Chan) -> bool {
|
||||||
|
sync.guard(&c.mutex)
|
||||||
if is_buffered(c) {
|
if is_buffered(c) {
|
||||||
return len(c) > 0
|
return len(c) > 0
|
||||||
}
|
}
|
||||||
sync.guard(&c.mutex)
|
|
||||||
return sync.atomic_load(&c.w_waiting) > 0
|
return sync.atomic_load(&c.w_waiting) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@(require_results)
|
@(require_results)
|
||||||
can_send :: proc "contextless" (c: ^Raw_Chan) -> bool {
|
can_send :: proc "contextless" (c: ^Raw_Chan) -> bool {
|
||||||
|
sync.guard(&c.mutex)
|
||||||
if is_buffered(c) {
|
if is_buffered(c) {
|
||||||
sync.guard(&c.mutex)
|
|
||||||
return len(c) < cap(c)
|
return len(c) < cap(c)
|
||||||
}
|
}
|
||||||
sync.guard(&c.mutex)
|
|
||||||
return sync.atomic_load(&c.r_waiting) > 0
|
return sync.atomic_load(&c.r_waiting) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user