to allow the client to add observers to the child proc, it should be (transparently) started off as blocked and unblocked when the client requests unblocking of the forking task.
Work in progress, this moves the block. Index: frysk-core/frysk/proc/ChangeLog 2005-11-20 Andrew Cagney <cagney@redhat.com> * TaskState.java: Replace state .startRunning with class .Starting containing sub-states .waitingForStop and .waitingForUnblock. * Task.java: In notifyForked, add blocking observer to fork's list. Similar for notifyCloned. * TestTaskForkedObserver.java: Update, also unblock the fork. * TestTaskClonedObserver.java: Update, also unblock the clone.
Index: frysk-core/frysk/proc/ChangeLog 2005-11-20 Andrew Cagney <cagney@redhat.com> * TestTaskObserver.java: Add class .CloneObserver. Add tests .testBlockedForkUnblockChildFirst, and .testBlockedForkUnblockParentFirst.
/** * Called when the Task has forked, creating a child Proc * containing a single Task. Return Action.BLOCK if the * observer wants this task and it's fork to be blocked (each * must be separatly unblocked). */ Action updateForked (Task task, Task fork);