pub fn waitUncancelable(event: *Event, io: Io) void
Same as wait, except does not introduce a cancelation point.
wait
For a description of cancelation and cancelation points, see Future.cancel.
Future.cancel
event: *Event
io: Io
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
pub fn waitUncancelable(event: *Event, io: Io) void { if (@cmpxchgStrong(Event, event, .unset, .waiting, .acquire, .acquire)) |prev| switch (prev) { .unset => unreachable, .waiting => {}, .is_set => return, }; while (true) { io.futexWaitUncancelable(Event, event, .waiting); switch (@atomicLoad(Event, event, .acquire)) { .unset => unreachable, // `reset` called before pending `wait` returned .waiting => continue, .is_set => return, } } }
Same as
wait, except does not introduce a cancelation point.For a description of cancelation and cancelation points, see
Future.cancel.