Bug 1855 - Blocking the child of a fork for observer addition
Summary: Blocking the child of a fork for observer addition
Status: RESOLVED FIXED
Alias: None
Product: frysk
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
: P1 normal
Target Milestone: ---
Assignee: Andrew Cagney
URL:
Keywords:
Depends on:
Blocks: 1516 1654
  Show dependency treegraph
 
Reported: 2005-11-11 16:52 UTC by Sami Wagiaalla
Modified: 2005-11-21 01:11 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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);