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.

All labels observed (3)

Label Occurrences
IOTimerEventSource 1
IOWorkLoop class canonical 1
IOWorkLoop::workLoop() 1

How this entity was disambiguated

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() ⓘ
linked to: IOWorkLoop class
designGoal avoid explicit locking in most driver code paths ⓘ
provide safe context for executing driver callbacks ⓘ
documentation Apple Developer Documentation for I/O Kit ⓘ
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 ⓘ
linked to: I/O Kit
operatingSystem macOS ⓘ
partOf IOKit framework ⓘ
linked to: I/O Kit
platform Darwin kernel ⓘ
linked to: darwin
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 ⓘ
IOEventSource ⓘ
IOInterruptEventSource ⓘ
IOService ⓘ
IOTimerEventSource ⓘ
linked to: IOEventSource
schedulingGranularity event source callbacks ⓘ
synchronizationModel single-threaded work loop context ⓘ
synchronizationType cooperative serialization via work loop thread ⓘ
synchronizesWith IOCommandGate ⓘ
IOEventSource ⓘ
IOInterruptEventSource ⓘ
IOTimerEventSource ⓘ
linked to: IOWorkLoop class
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 ⓘ

How these facts were elicited

Referenced by (3)

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

I/O Kit → includes → IOWorkLoop class ⓘ
IOWorkLoop → synchronizesWith → IOTimerEventSource ⓘ
subject linked to: IOWorkLoop class
linked to: IOWorkLoop class
IOWorkLoop → creationMethod → IOWorkLoop::workLoop() ⓘ
subject linked to: IOWorkLoop class
linked to: IOWorkLoop class