IOWorkLoop class

E771035

The IOWorkLoop class is a core I/O Kit synchronization and event-handling mechanism in macOS that serializes work for kernel drivers using command gates and interrupt/event sources.

Try in SPARQL Jump to: Surface forms Statements Referenced by

Observed surface forms (1)

Surface form Occurrences
IOWorkLoop 0

Statements (46)

Predicate Object
instanceOf C++ class
I/O Kit event-handling mechanism
I/O Kit synchronization primitive
benefit reduces race conditions in driver code
simplifies driver synchronization design
concurrencyControl prevents concurrent execution of event source actions on same work loop
creationMethod IOWorkLoop::workLoop() NERFINISHED
designGoal avoid explicit locking in most driver code paths
provide safe context for executing driver callbacks
documentation Apple Developer Documentation for I/O Kit NERFINISHED
ensures ordered execution of work items
serialized access to driver state
handles command-gate-enqueued function calls
interrupt-driven events
timer-driven events
language C++
layer kernel space
lifecycle created and owned by an IOService subclass
namespace Kernel I/O Kit NERFINISHED
operatingSystem macOS
partOf IOKit framework NERFINISHED
platform Darwin kernel NERFINISHED
primaryRole provide event-handling context for drivers
serialize work for kernel drivers
provides execution context for IOEventSource objects
mutual exclusion for driver critical sections
relatedTo IOCommandGate NERFINISHED
IOEventSource NERFINISHED
IOInterruptEventSource NERFINISHED
IOService NERFINISHED
IOTimerEventSource NERFINISHED
schedulingGranularity event source callbacks
synchronizationModel single-threaded work loop context
synchronizationType cooperative serialization via work loop thread
synchronizesWith IOCommandGate NERFINISHED
IOEventSource NERFINISHED
IOInterruptEventSource NERFINISHED
IOTimerEventSource NERFINISHED
threadingModel dedicated kernel thread or shared thread pool
usedBy kernel device drivers
kernel extensions
usedFor deferring interrupt work to thread context
handling hardware interrupts in a serialized context
scheduling timed callbacks via timer event sources
synchronizing access to hardware registers
synchronizing access to shared driver data structures

Referenced by (1)

Full triples — surface form annotated when it differs from this entity's canonical label.

I/O Kit includes IOWorkLoop class