PackedWaker / PackedList in waker.zig was quickly written and could possibly be improved. It takes a Set which is a packed struct of booleans representative of a bitset.
The PackedWaker is used for signal handling, where Set is the set of possible signals that a caller may suspend themselves on.
Upon the notification of a signal being received by a process, should any of the received signals match any callers waited-upon signals, the suspended caller would be resumed.
Once this feature is done, I will move signal handling on linux/darwin to utilize sigaction to be able to catch all signals directed towards a process unlike signalfd or kqueue EVFILT_SIGNAL to keep signal handling behavior consistent across platforms.
PackedWaker/PackedListinwaker.zigwas quickly written and could possibly be improved. It takes aSetwhich is a packed struct of booleans representative of a bitset.The
PackedWakeris used for signal handling, whereSetis the set of possible signals that a caller may suspend themselves on.Upon the notification of a signal being received by a process, should any of the received signals match any callers waited-upon signals, the suspended caller would be resumed.
Once this feature is done, I will move signal handling on linux/darwin to utilize
sigactionto be able to catch all signals directed towards a process unlikesignalfdorkqueue EVFILT_SIGNALto keep signal handling behavior consistent across platforms.