Bug 1855

Summary: Blocking the child of a fork for observer addition
Product: frysk Reporter: Sami Wagiaalla <swagiaal>
Component: generalAssignee: Andrew Cagney <cagney>
Status: RESOLVED FIXED    
Severity: normal CC: pmuldoon, swagiaal
Priority: P1    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Bug Depends on:    
Bug Blocks: 1516, 1654    

Description Sami Wagiaalla 2005-11-11 16:52:31 UTC
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.
Comment 1 Andrew Cagney 2005-11-20 22:02:38 UTC
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.
Comment 2 Andrew Cagney 2005-11-21 01:10:05 UTC
Index: frysk-core/frysk/proc/ChangeLog
2005-11-20  Andrew Cagney  <cagney@redhat.com>

        * TestTaskObserver.java: Add class .CloneObserver.  Add tests
        .testBlockedForkUnblockChildFirst, and
        .testBlockedForkUnblockParentFirst.
Comment 3 Andrew Cagney 2005-11-21 01:11:03 UTC
        /**
         * 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);