|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object frysk.proc.live.LinuxWaitBuilder
class LinuxWaitBuilder
Handles wait events generated by the wait builder.
Field Summary | |
---|---|
private static Log |
fine
|
private List |
fsckedOrderedKernelEvents
Maintain a list of fscked up kernel waitpid events - where an event for a pid arrives before it has been created - so that they can be re-processed when there's a fork. |
private LinuxPtraceHost |
host
|
Constructor Summary | |
---|---|
LinuxWaitBuilder(LinuxPtraceHost host)
|
Method Summary | |
---|---|
private void |
attemptDeliveringFsckedKernelEvents()
Run through the list of fscked up kernel waitpid events attempting delivery of each in turn. |
void |
cloneEvent(ProcessIdentifier pid,
ProcessIdentifier clonePid)
The task PID got a clone event; CLONE is the new task's ID. |
void |
disappeared(ProcessIdentifier pid,
Throwable w)
The task PID disappeared. |
void |
execEvent(ProcessIdentifier pid)
The task PID got an exec event; the process has already been overlayed. |
void |
exitEvent(ProcessIdentifier pid,
Signal signal,
int status,
boolean coreDumped)
The task PID got an exit event; if SIGNAL is non-NULL it contains the terminating signal and STATUS is the negated signal value, else STATUS contains the cardinal exit status. |
void |
forkEvent(ProcessIdentifier pid,
ProcessIdentifier fork)
The task PID got a fork event; CHILD is the new process ID. |
private LinuxPtraceTask |
get(ProcessIdentifier pid,
String why)
|
private void |
logMissing(String what,
ProcessIdentifier pid)
|
private void |
saveFsckedOrderedKernelStoppedEvent(ProcessIdentifier aPid,
Signal aSignal)
Append the fscked-up stop event (it arrived when the task didn't exist) to the fscked-up list. |
void |
stopped(ProcessIdentifier pid,
Signal sig)
The task PID stopped with SIGNAL pending (could be SIGNONE). |
void |
syscallEvent(ProcessIdentifier pid)
XXX: It isn't currently possible to determine from the syscall event whether it is entry or exit. |
void |
terminated(ProcessIdentifier pid,
Signal signal,
int status,
boolean coreDumped)
The task PID terminated (either WIFEXITED or WIFSIGNALED); if SIGNAL is non-NULL then the termination is the specified signal and STATUS is the negated signal value; else STATUS is the cardinal exit status. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Log fine
private final LinuxPtraceHost host
private List fsckedOrderedKernelEvents
Constructor Detail |
---|
LinuxWaitBuilder(LinuxPtraceHost host)
Method Detail |
---|
private void attemptDeliveringFsckedKernelEvents()
private void saveFsckedOrderedKernelStoppedEvent(ProcessIdentifier aPid, Signal aSignal)
private LinuxPtraceTask get(ProcessIdentifier pid, String why)
private void logMissing(String what, ProcessIdentifier pid)
public void cloneEvent(ProcessIdentifier pid, ProcessIdentifier clonePid)
WaitBuilder
cloneEvent
in interface WaitBuilder
public void forkEvent(ProcessIdentifier pid, ProcessIdentifier fork)
WaitBuilder
forkEvent
in interface WaitBuilder
public void exitEvent(ProcessIdentifier pid, Signal signal, int status, boolean coreDumped)
WaitBuilder
exitEvent
in interface WaitBuilder
public void execEvent(ProcessIdentifier pid)
WaitBuilder
execEvent
in interface WaitBuilder
public void disappeared(ProcessIdentifier pid, Throwable w)
WaitBuilder
disappeared
in interface WaitBuilder
public void syscallEvent(ProcessIdentifier pid)
WaitBuilder
syscallEvent
in interface WaitBuilder
public void stopped(ProcessIdentifier pid, Signal sig)
WaitBuilder
stopped
in interface WaitBuilder
public void terminated(ProcessIdentifier pid, Signal signal, int status, boolean coreDumped)
WaitBuilder
terminated
in interface WaitBuilder
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |