scheduler: add futexWaitUncancelable
This commit is contained in:
+7
-1
@@ -326,7 +326,13 @@ pub fn sleep(self: *Scheduler, delta_us: u64) !void {
|
|||||||
try self.checkCancel();
|
try self.checkCancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn futexWait(self: *Scheduler, ptr: *const u32, expected: u32) void {
|
pub fn futexWait(self: *Scheduler, ptr: *const u32, expected: u32) !void {
|
||||||
|
try self.checkCancel();
|
||||||
|
self.futexWaitUncancelable(ptr, expected);
|
||||||
|
try self.checkCancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn futexWaitUncancelable(self: *Scheduler, ptr: *const u32, expected: u32) void {
|
||||||
if (@atomicLoad(u32, ptr, .seq_cst) != expected)
|
if (@atomicLoad(u32, ptr, .seq_cst) != expected)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user