From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6303 invoked by alias); 11 Mar 2008 21:22:49 -0000 Received: (qmail 6274 invoked by uid 367); 11 Mar 2008 21:22:48 -0000 Date: Tue, 11 Mar 2008 21:22:00 -0000 Message-ID: <20080311212248.6259.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Rely less on observableProcAddedXXX to find offspring. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 339efbdf21c71154f4927bb94915bf009bdba38e X-Git-Newrev: 7738b08136d36420784885c1bc19d260a936ade8 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q1/txt/msg00337.txt.bz2 The branch, master has been updated via 7738b08136d36420784885c1bc19d260a936ade8 (commit) from 339efbdf21c71154f4927bb94915bf009bdba38e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7738b08136d36420784885c1bc19d260a936ade8 Author: Andrew Cagney Date: Tue Mar 11 17:21:37 2008 -0400 Rely less on observableProcAddedXXX to find offspring. frysk-core/frysk/proc/live/ChangeLog 2008-03-11 Andrew Cagney * TestTaskObserverBlocked.java: Register offspring with TearDownProcess. frysk-core/frysk/testbed/ChangeLog 2008-03-11 Andrew Cagney * TestLib.java (addToTearDown(Task)): New. (addToTearDown(Proc)): New. (setUp()): Check if Host.observableProcAddedXXX is null. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/live/ChangeLog | 3 + .../frysk/proc/live/TestTaskObserverBlocked.java | 63 ++++++++++---------- frysk-core/frysk/testbed/ChangeLog | 4 + frysk-core/frysk/testbed/TestLib.java | 45 ++++++++------ 4 files changed, 66 insertions(+), 49 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index bbe5917..f747dea 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,5 +1,8 @@ 2008-03-11 Andrew Cagney + * TestTaskObserverBlocked.java: Register offspring with + TearDownProcess. + * TestProcStopped.java: Update to match Offspring. * TestRuntimeIsa.java: Ditto. diff --git a/frysk-core/frysk/proc/live/TestTaskObserverBlocked.java b/frysk-core/frysk/proc/live/TestTaskObserverBlocked.java index e170aaa..8695532 100644 --- a/frysk-core/frysk/proc/live/TestTaskObserverBlocked.java +++ b/frysk-core/frysk/proc/live/TestTaskObserverBlocked.java @@ -80,12 +80,12 @@ public class TestTaskObserverBlocked extends TestLib { { TaskSet attachedTasks = new TaskSet(); - public Action updateAttached (Task task) - { - attachedTasks.add(task); - Manager.eventLoop.requestStop(); - return Action.BLOCK; - } + public Action updateAttached(Task task) { + addToTearDown(task); + attachedTasks.add(task); + Manager.eventLoop.requestStop(); + return Action.BLOCK; + } } BlockAttached blockAttached = new BlockAttached(); @@ -194,26 +194,26 @@ public class TestTaskObserverBlocked extends TestLib { return Action.BLOCK; } - protected Action spawnedOffspring (Task parent, Task offspring) - { - fine.log(this, "spawnedOffspring"); - assertInState(SPAWN_PARENT); - nextState(SPAWN_OFFSPRING); - this.offspring = offspring; - Manager.eventLoop.requestStop(); - return Action.BLOCK; - } - - /** - * Officially attached to Task. - */ - public Action updateAttached (Task task) - { - assertInState(OBSERVER_ADDED_TO_CHILD); - nextState(CHILD_ATTACHED); - Manager.eventLoop.requestStop(); - return Action.BLOCK; - } + protected Action spawnedOffspring(Task parent, Task offspring) { + fine.log(this, "spawnedOffspring"); + addToTearDown(offspring); + assertInState(SPAWN_PARENT); + nextState(SPAWN_OFFSPRING); + this.offspring = offspring; + Manager.eventLoop.requestStop(); + return Action.BLOCK; + } + + /** + * Officially attached to Task. + */ + public Action updateAttached(Task task) { + addToTearDown(task); + assertInState(OBSERVER_ADDED_TO_CHILD); + nextState(CHILD_ATTACHED); + Manager.eventLoop.requestStop(); + return Action.BLOCK; + } /** * Create a new daemon process, attach to it's spawn observer (forked or @@ -415,6 +415,7 @@ public class TestTaskObserverBlocked extends TestLib { return Action.CONTINUE; } public Action updateForkedOffspring (Task parent, Task offspring) { + addToTearDown(offspring); offspring.requestUnblock(this); return Action.BLOCK; } @@ -471,11 +472,11 @@ public class TestTaskObserverBlocked extends TestLib { return Action.CONTINUE; } - public Action updateForkedOffspring (Task parent, Task offspring) - { - offspring.requestUnblock(this); - offspring.requestAddForkedObserver(this); - return Action.BLOCK; + public Action updateForkedOffspring (Task parent, Task offspring) { + addToTearDown(offspring); + offspring.requestUnblock(this); + offspring.requestAddForkedObserver(this); + return Action.BLOCK; } } UnblockAdd observer = new UnblockAdd(); diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index d167f0b..7e43be5 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,5 +1,9 @@ 2008-03-11 Andrew Cagney + * TestLib.java (addToTearDown(Task)): New. + (addToTearDown(Proc)): New. + (setUp()): Check if Host.observableProcAddedXXX is null. + * ProcCounter.java: Delete. * StopEventLoopWhenProcTerminated.java: Rename diff --git a/frysk-core/frysk/testbed/TestLib.java b/frysk-core/frysk/testbed/TestLib.java index 4d32b61..d877969 100644 --- a/frysk-core/frysk/testbed/TestLib.java +++ b/frysk-core/frysk/testbed/TestLib.java @@ -42,6 +42,7 @@ package frysk.testbed; import frysk.sys.ProcessIdentifier; import frysk.sys.ProcessIdentifierFactory; import frysk.proc.Proc; +import frysk.proc.Task; import frysk.proc.Host; import frysk.proc.Manager; import frysk.dwfl.DwflCache; @@ -184,6 +185,15 @@ public class TestLib extends TestCase { return findProc.proc; } + protected static void addToTearDown(Task task) { + fine.log("addToTearDown", task); + TearDownProcess.add(ProcessIdentifierFactory.create(task.getTid())); + } + protected static void addToTearDown(Proc proc) { + fine.log("addToTearDown", proc); + TearDownProcess.add(ProcessIdentifierFactory.create(proc.getPid())); + } + /** * The host being used by the current test. */ @@ -203,27 +213,26 @@ public class TestLib extends TestCase { // directly registers its process. That is to ensure that // children that never get entered into the process tree also // get registered with TearDownProcess. - host.observableProcAddedXXX.addObserver(new Observer() { - public void update (Observable o, Object obj) { - Proc proc = (Proc) obj; - if (isChildOfMine(proc)) { - TearDownProcess.add - (ProcessIdentifierFactory.create(proc.getPid())); - return; - } - Proc parent = proc.getParent(); - if (parent != null) { - ProcessIdentifier parentPid - = ProcessIdentifierFactory.create(proc.getParent() - .getPid()); - if (TearDownProcess.contains(parentPid)) { - TearDownProcess.add(ProcessIdentifierFactory - .create(proc.getPid())); + if (host.observableProcAddedXXX != null) + host.observableProcAddedXXX.addObserver(new Observer() { + public void update (Observable o, Object obj) { + Proc proc = (Proc) obj; + if (isChildOfMine(proc)) { + addToTearDown(proc); return; } + Proc parent = proc.getParent(); + if (parent != null) { + ProcessIdentifier parentPid + = ProcessIdentifierFactory.create(proc.getParent() + .getPid()); + if (TearDownProcess.contains(parentPid)) { + addToTearDown(proc); + return; + } + } } - } - }); + }); fine.log(this, "<<<<<<<<<<<<<<<< end setUp"); } hooks/post-receive -- frysk system monitor/debugger