frysk.proc
Interface TaskObserver.Signaled

All Superinterfaces:
Observer, TaskObserver
All Known Implementing Classes:
DaemonBlockedAtSignal.RunToSignal, FCatch.CatchObserver, Ftrace.MySignaledObserver, StressAttachDetachSignaledTask.SignalStorm, TaskSignaledObserver, TestSignalStepFrame, TestSyscallSignal.SignalObserver, TestTaskObserverCode.SignaledObserver, TestTaskObserverDetach.Detach, TestTaskObserverInstructionSigReturn, TestTaskSyscallObserver.TestSyscallInterruptXXX.SyscallInterruptObserver
Enclosing interface:
TaskObserver

public static interface TaskObserver.Signaled
extends TaskObserver

Interface used to notify that a Task has a pending signal.


Nested Class Summary
 
Nested classes/interfaces inherited from interface frysk.proc.TaskObserver
TaskObserver.Cloned, TaskObserver.Code, TaskObserver.Execed, TaskObserver.Forked, TaskObserver.Instruction, TaskObserver.Signaled, TaskObserver.Syscalls, TaskObserver.Terminated, TaskObserver.Terminating, TaskObserver.Watch
 
Method Summary
 Action updateSignaled(Task task, Signal signal)
          The SIGNAL is pending delivery to the task.
 
Methods inherited from interface frysk.proc.Observer
addedTo, addFailed, deletedFrom
 

Method Detail

updateSignaled

Action updateSignaled(Task task,
                      Signal signal)
The SIGNAL is pending delivery to the task. Return Action.BLOCK to block the task's further execution. XXX: This gets weird. At present and in theory, a client wanting to discard a signal would need to sequence the following: tell the task to scrub discard the signal; tell the task to remove this observer from the set of blockers; return Action.BLOCK so that this task is added to the set of blockers. Perhaps it would be better to always add an observer to the blocker pool and then require explict removal.