public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Add StopEventLoopWhenProcTerminates. Date: Tue, 11 Mar 2008 15:21:00 -0000 [thread overview] Message-ID: <20080311152058.6909.qmail@sourceware.org> (raw) The branch, master has been updated via f21c86aac743a2a3c201e78d8167b90e5791bd6d (commit) from c25d6b88f051607f5dfcab2c3f55fe295f872a09 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f21c86aac743a2a3c201e78d8167b90e5791bd6d Author: Andrew Cagney <cagney@redhat.com> Date: Tue Mar 11 11:19:08 2008 -0400 Add StopEventLoopWhenProcTerminates. frysk-core/frysk/isa/corefiles/ChangeLog 2008-03-11 Andrew Cagney <cagney@redhat.com> * TestLinuxElfCorefile.java: Update to match Offspring. frysk-core/frysk/proc/ChangeLog 2008-03-11 Andrew Cagney <cagney@redhat.com> * StressTestAbandon.java: Update to match Offspring. * TestProcTasksObserver.java: Ditto. * TestProcGet.java: Ditto. * TestProcForceDetach.java: Ditto. * TestMapGet.java: Ditto. * TestExec.java: Ditto. * TestAbandon.java: Ditto. * StressAttachDetachRapidlyCloningMainTask.java: Ditto. frysk-core/frysk/proc/live/ChangeLog 2008-03-11 Andrew Cagney <cagney@redhat.com> * TestProcStopped.java: Update to match Offspring. * TestRuntimeIsa.java: Ditto. frysk-core/frysk/testbed/ChangeLog 2008-03-11 Andrew Cagney <cagney@redhat.com> * TestLib.java (assertRunToFindProc(ProcessIdentifier)): New. * Offspring.java (assertRunToFindProc()): New. (assertFindProcAndTasks()): Delete. * StopEventLoopWhenProcTerminates.java: New. * TestStopEventLoopWhenProcTerminates.java: New. frysk-core/frysk/util/ChangeLog 2008-03-11 Andrew Cagney <cagney@redhat.com> * StressTestStackTraceAction.java: Update to match Offspring. * TestStackTraceAction.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/corefiles/ChangeLog | 4 + .../frysk/isa/corefiles/TestLinuxElfCorefile.java | 2 +- frysk-core/frysk/proc/ChangeLog | 9 +++ .../StressAttachDetachRapidlyCloningMainTask.java | 2 +- frysk-core/frysk/proc/StressTestAbandon.java | 2 +- frysk-core/frysk/proc/TestAbandon.java | 6 +- frysk-core/frysk/proc/TestExec.java | 4 +- frysk-core/frysk/proc/TestMapGet.java | 2 +- frysk-core/frysk/proc/TestProcForceDetach.java | 2 +- frysk-core/frysk/proc/TestProcGet.java | 12 ++-- frysk-core/frysk/proc/TestProcTasksObserver.java | 12 ++-- frysk-core/frysk/proc/dead/TestLinuxCore.java | 2 +- frysk-core/frysk/proc/live/ChangeLog | 3 + frysk-core/frysk/proc/live/TestProcStopped.java | 4 +- frysk-core/frysk/proc/live/TestRuntimeIsa.java | 8 +- frysk-core/frysk/testbed/ChangeLog | 8 +++ frysk-core/frysk/testbed/Offspring.java | 24 +------- ...d.java => StopEventLoopWhenProcTerminates.java} | 60 ++++++++++---------- frysk-core/frysk/testbed/TestLib.java | 21 +++++++ ...va => TestStopEventLoopWhenProcTerminates.java} | 56 +++++++++++------- frysk-core/frysk/util/ChangeLog | 5 ++ .../frysk/util/StressTestStackTraceAction.java | 2 +- frysk-core/frysk/util/TestStackTraceAction.java | 2 +- 23 files changed, 151 insertions(+), 101 deletions(-) copy frysk-core/frysk/testbed/{StopEventLoopWhenProcRemoved.java => StopEventLoopWhenProcTerminates.java} (68%) copy frysk-core/frysk/testbed/{IsaTestbed.java => TestStopEventLoopWhenProcTerminates.java} (60%) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/corefiles/ChangeLog b/frysk-core/frysk/isa/corefiles/ChangeLog index 790d374..bb8140c 100644 --- a/frysk-core/frysk/isa/corefiles/ChangeLog +++ b/frysk-core/frysk/isa/corefiles/ChangeLog @@ -1,3 +1,7 @@ +2008-03-11 Andrew Cagney <cagney@redhat.com> + + * TestLinuxElfCorefile.java: Update to match Offspring. + 2008-02-28 Phil Muldoon <pmuldoon@redhat.com> * TestLinuxElfCorefile.java (constructStackOnlyCore): Delete. diff --git a/frysk-core/frysk/isa/corefiles/TestLinuxElfCorefile.java b/frysk-core/frysk/isa/corefiles/TestLinuxElfCorefile.java index b3500e3..ea6e64c 100644 --- a/frysk-core/frysk/isa/corefiles/TestLinuxElfCorefile.java +++ b/frysk-core/frysk/isa/corefiles/TestLinuxElfCorefile.java @@ -323,7 +323,7 @@ public class TestLinuxElfCorefile { SlaveOffspring ackProc = SlaveOffspring.createDaemon(); assertNotNull(ackProc); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); assertNotNull(proc); return proc; } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 96d84d5..3e6df24 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,14 @@ 2008-03-11 Andrew Cagney <cagney@redhat.com> + * StressTestAbandon.java: Update to match Offspring. + * TestProcTasksObserver.java: Ditto. + * TestProcGet.java: Ditto. + * TestProcForceDetach.java: Ditto. + * TestMapGet.java: Ditto. + * TestExec.java: Ditto. + * TestAbandon.java: Ditto. + * StressAttachDetachRapidlyCloningMainTask.java: Ditto. + * TestMemory.java: Delete. * SyscallExaminer.java: Delete. diff --git a/frysk-core/frysk/proc/StressAttachDetachRapidlyCloningMainTask.java b/frysk-core/frysk/proc/StressAttachDetachRapidlyCloningMainTask.java index 5513e2b..c46019e 100644 --- a/frysk-core/frysk/proc/StressAttachDetachRapidlyCloningMainTask.java +++ b/frysk-core/frysk/proc/StressAttachDetachRapidlyCloningMainTask.java @@ -63,7 +63,7 @@ public class StressAttachDetachRapidlyCloningMainTask final int timeout = 20; - final Proc proc = new FunitThreadsOffspring(1000).assertFindProcAndTasks(); + final Proc proc = new FunitThreadsOffspring(1000).assertRunToFindProc(); // Create a list of tasks. Since the above is constantly // creating new tasks (with the old ones exiting) it is almost diff --git a/frysk-core/frysk/proc/StressTestAbandon.java b/frysk-core/frysk/proc/StressTestAbandon.java index 3c535af..0e71254 100644 --- a/frysk-core/frysk/proc/StressTestAbandon.java +++ b/frysk-core/frysk/proc/StressTestAbandon.java @@ -85,7 +85,7 @@ public class StressTestAbandon public void testStressAbandon () { Proc proc = SlaveOffspring.createDaemon() .assertSendAddClonesWaitForAcks(99) - .assertFindProcAndTasks(); + .assertRunToFindProc(); new ProcBlockAction(proc, new Action(proc)); assertRunUntilStop("testStressAbandon"); } diff --git a/frysk-core/frysk/proc/TestAbandon.java b/frysk-core/frysk/proc/TestAbandon.java index c24e89b..5252525 100644 --- a/frysk-core/frysk/proc/TestAbandon.java +++ b/frysk-core/frysk/proc/TestAbandon.java @@ -213,7 +213,7 @@ public class TestAbandon ackProc.findTaskUsingRefresh(true).requestAddInstructionObserver( testObserver); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); proc.getMainTask().requestDeleteInstructionObserver(testObserver); proc.requestAbandonAndRunEvent(new RequestStopEvent(Manager.eventLoop)); @@ -324,7 +324,7 @@ public class TestAbandon ackProc.findTaskUsingRefresh(true).requestAddInstructionObserver( testObserver); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); proc.requestAbandonAndRunEvent(new RequestStopEvent(Manager.eventLoop)); @@ -342,7 +342,7 @@ public class TestAbandon ackProc.findTaskUsingRefresh(true).requestAddInstructionObserver( testObserver); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); proc.requestAbandonAndRunEvent(new RequestStopEvent(Manager.eventLoop)); diff --git a/frysk-core/frysk/proc/TestExec.java b/frysk-core/frysk/proc/TestExec.java index f7b6e25..e7355a6 100644 --- a/frysk-core/frysk/proc/TestExec.java +++ b/frysk-core/frysk/proc/TestExec.java @@ -245,7 +245,7 @@ public class TestExec // loop is kept running until ExecParentObserver .addedTo is // called indicating that the attach succeeded. ExecParentObserver execParentObserver = new ExecParentObserver(); - Proc proc = child.assertFindProcAndTasks(); + Proc proc = child.assertRunToFindProc(); Task task = child.findTaskUsingRefresh(true); task.requestAddExecedObserver(execParentObserver); assertRunUntilStop("adding exec observer causing attach"); @@ -301,7 +301,7 @@ public class TestExec ExecCommand alias = new ExecCommand(ExecCommand.Executable.ALIAS); ExecOffspring child = new ExecOffspring (new ExecCommand(1 /* one thread */, alias)); - Proc proc = child.assertFindProcAndTasks(); + Proc proc = child.assertRunToFindProc(); // Attach to the process using the exec observer. The event // loop is kept running until execObserverParent .addedTo is diff --git a/frysk-core/frysk/proc/TestMapGet.java b/frysk-core/frysk/proc/TestMapGet.java index 0199600..9706fb0 100644 --- a/frysk-core/frysk/proc/TestMapGet.java +++ b/frysk-core/frysk/proc/TestMapGet.java @@ -123,7 +123,7 @@ public class TestMapGet { SlaveOffspring ackProc = SlaveOffspring.createChild(); assertNotNull(ackProc); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); assertNotNull(proc); return proc; } diff --git a/frysk-core/frysk/proc/TestProcForceDetach.java b/frysk-core/frysk/proc/TestProcForceDetach.java index b9c9e9e..8578c73 100644 --- a/frysk-core/frysk/proc/TestProcForceDetach.java +++ b/frysk-core/frysk/proc/TestProcForceDetach.java @@ -50,7 +50,7 @@ public class TestProcForceDetach public void requestRemove(SlaveOffspring ackProc, int count) { - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); new ProcBlockAction(proc, new MyProcBlockAction(proc)); assertRunUntilStop("test"); } diff --git a/frysk-core/frysk/proc/TestProcGet.java b/frysk-core/frysk/proc/TestProcGet.java index 646cc7c..40abde8 100644 --- a/frysk-core/frysk/proc/TestProcGet.java +++ b/frysk-core/frysk/proc/TestProcGet.java @@ -113,7 +113,7 @@ public class TestProcGet public void testGetCommand () { Offspring child = SlaveOffspring.createDaemon(); - Proc childProc = child.assertFindProcAndTasks(); + Proc childProc = child.assertRunToFindProc(); assertEquals("value of child's getCommand()", SlaveOffspring.getExecutable().getName(), childProc.getCommand()); @@ -126,7 +126,7 @@ public class TestProcGet { Offspring child = SlaveOffspring.createDaemon() .assertSendAddClonesWaitForAcks(1); - Proc proc = child.assertFindProcAndTasks(); // and tasks + Proc proc = child.assertRunToFindProc(); // and tasks List tasks = proc.getTasks(); assertEquals("number of tasks", 2, tasks.size()); @@ -155,8 +155,8 @@ public class TestProcGet // Create two children. The refreshes have the side effect of // updating this processes proc list. Proc[] child = new Proc[] { - SlaveOffspring.createChild().assertFindProcAndTasks(), - SlaveOffspring.createChild().assertFindProcAndTasks() }; + SlaveOffspring.createChild().assertRunToFindProc(), + SlaveOffspring.createChild().assertRunToFindProc() }; Proc self = host.getSelf(); assertEquals("number of children", 2, self.getChildren().size()); @@ -176,7 +176,7 @@ public class TestProcGet // Create a process with a known set of arguments. ExecCommand cmd = new ExecCommand(); ExecOffspring child = new ExecOffspring(cmd); - Proc proc = child.assertFindProcAndTasks(); + Proc proc = child.assertRunToFindProc(); String[] cmdLine = proc.getCmdLine(); assertEquals("cmdLine.length", cmd.argv.length, cmdLine.length); for (int i = 0; i < cmd.argv.length; i++) { @@ -193,7 +193,7 @@ public class TestProcGet ExecCommand cmd = new ExecCommand(); ExecOffspring child = new ExecOffspring(cmd); String file = new File(cmd.argv[0]).getCanonicalPath(); - Proc proc = child.assertFindProcAndTasks(); + Proc proc = child.assertRunToFindProc(); assertEquals("exe", proc.getExe(), file); } } diff --git a/frysk-core/frysk/proc/TestProcTasksObserver.java b/frysk-core/frysk/proc/TestProcTasksObserver.java index 57f42d4..87607a4 100644 --- a/frysk-core/frysk/proc/TestProcTasksObserver.java +++ b/frysk-core/frysk/proc/TestProcTasksObserver.java @@ -61,7 +61,7 @@ public class TestProcTasksObserver extends TestLib { */ public void manyExistingThread(SlaveOffspring ackProcess) { - final Proc proc = ackProcess.assertFindProcAndTasks(); + final Proc proc = ackProcess.assertRunToFindProc(); final int count = 4; @@ -90,7 +90,7 @@ public class TestProcTasksObserver extends TestLib { public void singleExistingClone(SlaveOffspring ackProcess) { //Create Process - Proc proc = ackProcess.assertFindProcAndTasks(); + Proc proc = ackProcess.assertRunToFindProc(); ackProcess.assertSendAddCloneWaitForAcks(); @@ -118,7 +118,7 @@ public class TestProcTasksObserver extends TestLib { public void singleExistingThread(SlaveOffspring ackProcess) { //Create Process - Proc proc = ackProcess.assertFindProcAndTasks(); + Proc proc = ackProcess.assertRunToFindProc(); final int count = 1; @@ -143,7 +143,7 @@ public class TestProcTasksObserver extends TestLib { public void doClone(SlaveOffspring ackProcess) { // Create Process - Proc proc = ackProcess.assertFindProcAndTasks(); + Proc proc = ackProcess.assertRunToFindProc(); final int addcount = 1; final int existcount = 1; @@ -177,7 +177,7 @@ public class TestProcTasksObserver extends TestLib { public void delete(SlaveOffspring ackProcess) { // Create Process - Proc proc = ackProcess.assertFindProcAndTasks(); + Proc proc = ackProcess.assertRunToFindProc(); final int delcount = 1; final int existcount = 1; @@ -215,7 +215,7 @@ public class TestProcTasksObserver extends TestLib { { //Create Process - Proc proc = ackProcess.assertFindProcAndTasks(); + Proc proc = ackProcess.assertRunToFindProc(); final int existingcount = 1; final int addcount = 1; diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index 519f7dc..9266eb5 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -522,7 +522,7 @@ public class TestLinuxCore extends TestLib { // nothing but provide the symbols. LegacyOffspring ackProc = LegacyOffspring.createChild(); assertNotNull(ackProc); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); assertNotNull(proc); return proc; } diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 2046d04..bbe5917 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,5 +1,8 @@ 2008-03-11 Andrew Cagney <cagney@redhat.com> + * TestProcStopped.java: Update to match Offspring. + * TestRuntimeIsa.java: Ditto. + * LinuxPtraceProc.java (getMainTask()): Implement. 2008-03-10 Andrew Cagney <cagney@redhat.com> diff --git a/frysk-core/frysk/proc/live/TestProcStopped.java b/frysk-core/frysk/proc/live/TestProcStopped.java index 3033ad4..519f8ff 100644 --- a/frysk-core/frysk/proc/live/TestProcStopped.java +++ b/frysk-core/frysk/proc/live/TestProcStopped.java @@ -59,12 +59,12 @@ public class TestProcStopped extends TestLib { private void stopped(SlaveOffspring ackProc) { ackProc.assertSendStop(); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); new ProcBlockAction(proc, new MyTester()); } private void running(SlaveOffspring ackProc) { - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); new ProcBlockAction(proc, new MyTester()); } diff --git a/frysk-core/frysk/proc/live/TestRuntimeIsa.java b/frysk-core/frysk/proc/live/TestRuntimeIsa.java index eb63dba..312f9be 100644 --- a/frysk-core/frysk/proc/live/TestRuntimeIsa.java +++ b/frysk-core/frysk/proc/live/TestRuntimeIsa.java @@ -111,7 +111,7 @@ public class TestRuntimeIsa extends TestLib { public void testAttachedCreateChild() { SlaveOffspring ackProc = SlaveOffspring.createAttachedChild(); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); assertNotNull("child has an isa at start", proc.getMainTask().getISA()); ackProc.assertSendAddForkWaitForAcks(); Proc child = (Proc) proc.getChildren().iterator().next(); @@ -124,7 +124,7 @@ public class TestRuntimeIsa extends TestLib { public void testAttachedCreateAttachedChild () { SlaveOffspring ackProc = SlaveOffspring.createAttachedChild(); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); class ForkedObserver extends TaskObserverBase @@ -157,7 +157,7 @@ public class TestRuntimeIsa extends TestLib { public void testAttachedCreateAttachedClone() { SlaveOffspring ackProc = SlaveOffspring.createAttachedChild(); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); class ClonedObserver extends TaskObserverBase @@ -189,7 +189,7 @@ public class TestRuntimeIsa extends TestLib { public void testAttachDetachAttachAgainDetachAgainAttachAgainAgain() { SlaveOffspring ackProc = SlaveOffspring.createChild(); - Proc proc = ackProc.assertFindProcAndTasks(); + Proc proc = ackProc.assertRunToFindProc(); Task task = proc.getMainTask(); AttachedObserver attacher = new AttachedObserver(); task.requestAddAttachedObserver(attacher); diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index abe1e34..0d05d31 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,11 @@ +2008-03-11 Andrew Cagney <cagney@redhat.com> + + * TestLib.java (assertRunToFindProc(ProcessIdentifier)): New. + * Offspring.java (assertRunToFindProc()): New. + (assertFindProcAndTasks()): Delete. + * StopEventLoopWhenProcTerminates.java: New. + * TestStopEventLoopWhenProcTerminates.java: New. + 2008-03-03 Andrew Cagney <cagney@redhat.com> * TestLib.java: Use frysk.config. diff --git a/frysk-core/frysk/testbed/Offspring.java b/frysk-core/frysk/testbed/Offspring.java index 67e6250..e4c3d0b 100644 --- a/frysk-core/frysk/testbed/Offspring.java +++ b/frysk-core/frysk/testbed/Offspring.java @@ -39,14 +39,11 @@ package frysk.testbed; -import frysk.proc.FindProc; import frysk.proc.Proc; import frysk.proc.Task; import frysk.sys.Errno; -import frysk.proc.Manager; import java.util.Iterator; import frysk.sys.Signal; -import frysk.junit.TestCase; import frysk.sys.ProcessIdentifier; /** @@ -82,23 +79,10 @@ public abstract class Offspring { } } /** - * Find/return the child's Proc, polling /proc if necessary. + * Find/return the child's Proc by running the event-loop. */ - public Proc assertFindProcAndTasks () { - class ProcFinder implements FindProc { - Proc proc; - public void procFound(Proc p) { - proc = p; - Manager.eventLoop.requestStop(); - } - public void procNotFound(int pid) { - TestCase.fail("Couldn't find the given proc " + pid); - } - } - ProcFinder findProc = new ProcFinder(); - Manager.host.requestProc(getPid().intValue(), findProc); - Manager.eventLoop.run(); - return findProc.proc; + public Proc assertRunToFindProc() { + return TestLib.assertRunToFindProc(getPid()); } /** @@ -106,7 +90,7 @@ public abstract class Offspring { * necessary. */ public Task findTaskUsingRefresh (boolean mainTask) { - Proc proc = assertFindProcAndTasks(); + Proc proc = assertRunToFindProc(); for (Iterator i = proc.getTasks().iterator(); i.hasNext();) { Task task = (Task) i.next(); if (task.getTid() == proc.getPid()) { diff --git a/frysk-core/frysk/testbed/StopEventLoopWhenProcRemoved.java b/frysk-core/frysk/testbed/StopEventLoopWhenProcTerminates.java similarity index 68% copy from frysk-core/frysk/testbed/StopEventLoopWhenProcRemoved.java copy to frysk-core/frysk/testbed/StopEventLoopWhenProcTerminates.java index a0e7dc4..b9a2449 100644 --- a/frysk-core/frysk/testbed/StopEventLoopWhenProcRemoved.java +++ b/frysk-core/frysk/testbed/StopEventLoopWhenProcTerminates.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, 2007, 2008, Red Hat Inc. +// Copyright 2008, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -39,48 +39,50 @@ package frysk.testbed; -import java.util.Observer; -import java.util.Observable; import frysk.proc.Proc; import frysk.rsl.Log; import frysk.proc.Manager; +import frysk.proc.TaskObserver; +import frysk.proc.Action; +import frysk.isa.signals.Signal; +import frysk.proc.Task; import frysk.sys.ProcessIdentifier; -import frysk.sys.ProcessIdentifierFactory; /** * An observer that stops the eventloop when the process with the - * given pid is removed. + * given pid terminates. */ -public class StopEventLoopWhenProcRemoved implements Observer { - private static final Log fine - = Log.fine(StopEventLoopWhenProcRemoved.class); - public boolean p; +public class StopEventLoopWhenProcTerminates extends TaskObserverBase + implements TaskObserver.Terminated +{ + private static final Log fine + = Log.fine(StopEventLoopWhenProcTerminates.class); - private ProcessIdentifier pid; + public boolean terminated; + public Signal signal; + public int status; - public StopEventLoopWhenProcRemoved(ProcessIdentifier pid) { - this.pid = pid; - Manager.host.observableProcRemovedXXX.addObserver(this); + private Proc proc; + public String toString() { + return proc.toString(); } - public StopEventLoopWhenProcRemoved(Offspring pid) { - this(pid.getPid()); + + public StopEventLoopWhenProcTerminates(Proc proc) { + proc.getMainTask().requestAddTerminatedObserver(this); } - public StopEventLoopWhenProcRemoved(Proc proc) { - this(ProcessIdentifierFactory.create(proc.getPid())); + + public StopEventLoopWhenProcTerminates(ProcessIdentifier pid) { + this(TestLib.assertRunToFindProc(pid)); } - public void update (Observable o, Object obj) { - Proc proc = (Proc) obj; - if (proc.getPid() == this.pid.intValue()) { - // Shut things down. - fine.log(this, "update", proc, - "has been removed stopping event loop"); - Manager.eventLoop.requestStop(); - p = true; - } else { - fine.log(this, "update", proc, - "has been removed NOT stopping event loop"); - } + public Action updateTerminated(Task task, Signal signal, int status) { + fine.log(this, "updateTerminated", task, "signal", signal, "status", hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2008-03-11 15:21 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080311152058.6909.qmail@sourceware.org \ --to=cagney@sourceware.org \ --cc=frysk-cvs@sourceware.org \ --cc=frysk@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).