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: link
Be 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).