runAction
Single thread a call to an action with the target work-loop.
Declaration
virtual IOReturn runAction(
Action action,
void *arg0 = 0,
void *arg1 = 0,
void *arg2 = 0,
void *arg3 = 0);Parameters
- action:
Pointer to function to be executed in work-loop context.
- arg0:
Parameter for action parameter, defaults to 0.
- arg1:
Parameter for action parameter, defaults to 0.
- arg2:
Parameter for action parameter, defaults to 0.
- arg3:
Parameter for action parameter, defaults to 0.
Return Value
kIOReturnSuccess if successful. kIOReturnBadArgument if action is not defined, kIOReturnAborted if a disabled command gate is free()ed before being reenabled.
Overview
Client function that causes the given action to be called in a single threaded manner. Beware the work-loop's gate is recursive and command gates can cause direct or indirect re-entrancy. When the executing on a client's thread runAction will sleep until the work-loop's gate opens for execution of client actions, the action is single threaded against all other work-loop event sources. If the command is disabled the attempt to run a command will be stalled until enable is called.