public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: frysk.sys.Fork.* return a ProcessIdentifier.
@ 2008-02-06 22:25 cagney
  0 siblings, 0 replies; only message in thread
From: cagney @ 2008-02-06 22:25 UTC (permalink / raw)
  To: frysk-cvs

The branch, master has been updated
       via  72daf237213a1f1758262e493f709c74a7f37630 (commit)
      from  24d8dca03611b748442112923bd6aeb02c9b249d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 72daf237213a1f1758262e493f709c74a7f37630
Author: Andrew Cagney <cagney@redhat.com>
Date:   Wed Feb 6 17:24:04 2008 -0500

    frysk.sys.Fork.* return a ProcessIdentifier.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-02-06  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceHost.java: Update to match frysk.sys.Fork.
    	* TestRefresh.java: Ditto.
    
    frysk-core/frysk/testbed/ChangeLog
    2008-02-06  Andrew Cagney  <cagney@redhat.com>
    
    	* OffspringType.java: Update to match frysk.sys.Fork.
    	* SynchronizedOffspring.java: Ditto.
    
    frysk-sys/frysk/sys/ChangeLog
    2008-02-06  Andrew Cagney  <cagney@redhat.com>
    
    	* Wait.java (drain(ProcessIdentifier))
    	(drainNoHang(ProcessIdentifier))
    	(wait(ProcessIdentifier,WaitBuilder,SignalBuilder,long,boolean))
    	(waitAll(ProcessIdentifier, WaitBuilder)): New.
    	* Fork.java (exec, daemon, ptrace): Return a ProcessIdentifier.
    	* cni/Fork.cxx: Update.
    	* TestWait.java: Update.
    	* TestFork.java: Update.
    	* TestPtrace.java: Update.
    
    frysk-sys/frysk/testbed/ChangeLog
    2008-02-06  Andrew Cagney  <cagney@redhat.com>
    
    	* TestTearDownProcess.java: Update to match frysk.sys.Fork.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/proc/live/ChangeLog               |    5 +
 frysk-core/frysk/proc/live/LinuxPtraceHost.java    |    6 +-
 frysk-core/frysk/testbed/ChangeLog                 |    5 +
 frysk-core/frysk/testbed/OffspringType.java        |   30 +++++---
 .../frysk/testbed/SynchronizedOffspring.java       |   14 ++--
 frysk-sys/frysk/sys/ChangeLog                      |   10 +++
 frysk-sys/frysk/sys/Fork.java                      |   26 +++----
 frysk-sys/frysk/sys/TestFork.java                  |   17 ++--
 frysk-sys/frysk/sys/TestPtrace.java                |   44 +++++------
 frysk-sys/frysk/sys/TestWait.java                  |   16 ++--
 frysk-sys/frysk/sys/Wait.java                      |   79 +++++++++++--------
 frysk-sys/frysk/sys/cni/Fork.cxx                   |   27 ++++---
 frysk-sys/frysk/testbed/ChangeLog                  |    4 +
 frysk-sys/frysk/testbed/TestTearDownProcess.java   |   63 +++++++---------
 14 files changed, 193 insertions(+), 153 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog
index 9f54dab..01f0b15 100644
--- a/frysk-core/frysk/proc/live/ChangeLog
+++ b/frysk-core/frysk/proc/live/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-06  Andrew Cagney  <cagney@redhat.com>
+
+	* LinuxPtraceHost.java: Update to match frysk.sys.Fork.
+	* TestRefresh.java: Ditto.
+
 2008-01-31  Andrew Cagney  <cagney@redhat.com>
 
 	* LinuxPtraceHost.java (requestRefresh(Set,HostRefreshBuilder))
diff --git a/frysk-core/frysk/proc/live/LinuxPtraceHost.java b/frysk-core/frysk/proc/live/LinuxPtraceHost.java
index 3a7ddd3..14a7e16 100644
--- a/frysk-core/frysk/proc/live/LinuxPtraceHost.java
+++ b/frysk-core/frysk/proc/live/LinuxPtraceHost.java
@@ -52,6 +52,7 @@ import java.util.Iterator;
 import frysk.proc.TaskId;
 import frysk.proc.Task;
 import frysk.proc.TaskObserver.Attached;
+import frysk.sys.ProcessIdentifier;
 import frysk.proc.Manager;
 import java.util.logging.Level;
 import frysk.sys.Fork;
@@ -244,7 +245,8 @@ public class LinuxPtraceHost extends LiveHost {
 	Manager.eventLoop.add(new Event() {
 		public void execute() {
 		    logger.log(Level.FINE, "{0} sendCreateAttachedProc\n", this);
-		    int pid = Fork.ptrace(stdin, stdout, stderr, args);
+		    ProcessIdentifier pid
+			= Fork.ptrace(stdin, stdout, stderr, args);
 		    // See if the Host knows about this task.
 		    TaskId myTaskId = new TaskId(Tid.get());
 		    Task myTask = get(myTaskId);
@@ -253,7 +255,7 @@ public class LinuxPtraceHost extends LiveHost {
 			Proc myProc = getSelf();
 			myTask = new LinuxPtraceTask(myProc, myTaskId);
 		    }
-		    LinuxPtraceProc proc = new LinuxPtraceProc (myTask, new ProcId(pid));
+		    LinuxPtraceProc proc = new LinuxPtraceProc (myTask, new ProcId(pid.intValue()));
 		    new LinuxPtraceTask(proc, attachedObserver);
 		}
 	    });
diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog
index 3c18689..265a881 100644
--- a/frysk-core/frysk/testbed/ChangeLog
+++ b/frysk-core/frysk/testbed/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-06  Andrew Cagney  <cagney@redhat.com>
+
+	* OffspringType.java: Update to match frysk.sys.Fork.
+	* SynchronizedOffspring.java: Ditto.
+
 2008-01-25  Andrew Cagney  <cagney@redhat.com>
 
 	* TestIsa.java: New.
diff --git a/frysk-core/frysk/testbed/OffspringType.java b/frysk-core/frysk/testbed/OffspringType.java
index fb7352c..f86e20e 100644
--- a/frysk-core/frysk/testbed/OffspringType.java
+++ b/frysk-core/frysk/testbed/OffspringType.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2007, Red Hat Inc.
+// Copyright 2007, 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
@@ -44,17 +44,23 @@ import frysk.proc.Manager;
 import frysk.proc.TaskObserver;
 import frysk.proc.Action;
 import frysk.proc.Task;
+import frysk.sys.ProcessIdentifier;
+import frysk.sys.ProcessIdentifierFactory;
 
 public abstract class OffspringType {
     private OffspringType() { }
-    public abstract int startOffspring(String stdin, String stdout,
-				       String stderr, String[] argv);
+    public abstract ProcessIdentifier startOffspring(String stdin,
+						     String stdout,
+						     String stderr,
+						     String[] argv);
     /**
      * Create a daemon offspring.
      */
     static public final OffspringType DAEMON = new OffspringType() {
-	    public int startOffspring (String stdin, String stdout,
-				       String stderr, String[] argv) {
+	    public ProcessIdentifier startOffspring(String stdin,
+						    String stdout,
+						    String stderr,
+						    String[] argv) {
 		return Fork.daemon(stdin, stdout, stderr, argv);
 	    }
 	};
@@ -62,8 +68,10 @@ public abstract class OffspringType {
      * Create a child offspring.
      */
     static public final OffspringType CHILD = new OffspringType() {
-	    public int startOffspring (String stdin, String stdout,
-				       String stderr, String[] argv) {
+	    public ProcessIdentifier startOffspring(String stdin,
+						    String stdout,
+						    String stderr,
+						    String[] argv) {
 		return Fork.exec(stdin, stdout, stderr, argv);
 	    }
 	};
@@ -71,8 +79,10 @@ public abstract class OffspringType {
      * Create a running attached child offspring.
      */
     static protected final OffspringType ATTACHED_CHILD = new OffspringType() {
-	    public int startOffspring (String stdin, String stdout,
-				       String stderr, String[] argv) {
+	    public ProcessIdentifier startOffspring(String stdin,
+						    String stdout,
+						    String stderr,
+						    String[] argv) {
 		// Capture the child process id as it flys past.
 		class TidObserver
 		    extends TaskObserverBase
@@ -93,7 +103,7 @@ public abstract class OffspringType {
 						       tidObserver);
 		TestLib.assertRunUntilStop("starting attached child");
 		// Return that captured TID.
-		return tidObserver.tid;
+		return ProcessIdentifierFactory.createFIXME(tidObserver.tid);
 	    }
 	};
 }
diff --git a/frysk-core/frysk/testbed/SynchronizedOffspring.java b/frysk-core/frysk/testbed/SynchronizedOffspring.java
index 2027803..75d7307 100644
--- a/frysk-core/frysk/testbed/SynchronizedOffspring.java
+++ b/frysk-core/frysk/testbed/SynchronizedOffspring.java
@@ -40,6 +40,7 @@
 package frysk.testbed;
 
 import frysk.sys.Signal;
+import frysk.sys.ProcessIdentifier;
 import frysk.proc.Manager;
 import java.util.logging.Level;
 
@@ -57,20 +58,21 @@ public class SynchronizedOffspring
     // mask all the way down to the exec'ed child.
     public static final Signal START_ACK = Signal.HUP;
 
-    private final int pid;
+    private final ProcessIdentifier pid;
+
     /**
      * Return the ProcessID of the child.
      */
-    public int getPid () {
-	return pid;
+    public int getPid() {
+	return pid.intValue();
     }
 
     /**
      * Create a child process (using startChild), return once the
      * process is running. Wait for acknowledge SIG.
      */
-    protected SynchronizedOffspring (OffspringType type,
-				     Signal sig, String[] argv) {
+    protected SynchronizedOffspring(OffspringType type,
+				    Signal sig, String[] argv) {
 	logger.log(Level.FINE, "{0} new ...\n", this);
 	SignalWaiter ack = new SignalWaiter(Manager.eventLoop, sig,
 					    "startOffspring");
@@ -81,7 +83,7 @@ public class SynchronizedOffspring
 	TearDownProcess.add(pid);
 	ack.assertRunUntilSignaled();
 	logger.log(Level.FINE, "{0} ... new pid {1,number,integer}\n",
-		   new Object[] {this, new Integer(pid) });
+		   new Object[] { this, pid });
     }
 
     public SynchronizedOffspring(Signal sig, String[] argv) {
diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog
index 043f839..366fbc7 100644
--- a/frysk-sys/frysk/sys/ChangeLog
+++ b/frysk-sys/frysk/sys/ChangeLog
@@ -1,5 +1,15 @@
 2008-02-06  Andrew Cagney  <cagney@redhat.com>
 
+	* Wait.java (drain(ProcessIdentifier))
+	(drainNoHang(ProcessIdentifier))
+	(wait(ProcessIdentifier,WaitBuilder,SignalBuilder,long,boolean))
+	(waitAll(ProcessIdentifier, WaitBuilder)): New.
+	* Fork.java (exec, daemon, ptrace): Return a ProcessIdentifier.
+	* cni/Fork.cxx: Update.
+	* TestWait.java: Update.
+	* TestFork.java: Update.
+	* TestPtrace.java: Update.
+
 	* cni/Errno.hxx (tryGarbageCollect(int&): Delete.
 	(tryGarbageCollect(int&,int,const char*)): Delete.
 	(tryGarbageCollect(int&,int,const char*,const char*,int)): Delete.
diff --git a/frysk-sys/frysk/sys/Fork.java b/frysk-sys/frysk/sys/Fork.java
index 14b0977..587147c 100644
--- a/frysk-sys/frysk/sys/Fork.java
+++ b/frysk-sys/frysk/sys/Fork.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2005, 2007, Red Hat Inc.
+// Copyright 2005, 2007, 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
@@ -44,22 +44,20 @@ package frysk.sys;
  * sort of exec.
  */
 
-public final class Fork
-{
+public final class Fork {
     /**
      * Create a child process running ARGV[0] with arguments
      * ARGV[1..].
      *
      * Also wire up IN, OUT, and ERR.
      */
-    public static native int exec (String in, String out, String err,
-				   String[] argv);
+    public static native ProcessIdentifier exec(String in, String out,
+						String err, String[] argv);
     /**
      * Create a child process running ARGV[0] with arguments
      * ARGV[1..].
      */
-    public static final int exec (String[] argv)
-    {
+    public static final ProcessIdentifier exec(String[] argv) {
 	return exec (null, null, null, argv);
     }
 
@@ -69,14 +67,13 @@ public final class Fork
      *
      * Also wire up IN, OUT, and ERR.
      */
-    public static native int ptrace (String in, String out, String err,
-				     String[] argv);
+    public static native ProcessIdentifier ptrace(String in, String out,
+						  String err, String[] argv);
     /**
      * Create a child process running ARGV[0] with arguments
      * ARGV[1...]; mark the process for tracing.
      */
-    public static final int ptrace (String[] argv)
-    {
+    public static final ProcessIdentifier ptrace(String[] argv) {
 	return ptrace (null, null, null, argv);
     }
 
@@ -86,14 +83,13 @@ public final class Fork
      *
      * Also wire up IN, OUT, and ERR.
      */
-    public static native int daemon (String in, String out, String err,
-				     String[] argv);
+    public static native ProcessIdentifier daemon(String in, String out,
+						  String err, String[] argv);
     /**
      * Create a "daemon" process running ARGV[0] with arguments
      * ARGV[1...]; a daemon has process ID 1 as its parent.
      */
-    public static final int daemon (String[] argv)
-    {
+    public static final ProcessIdentifier daemon(String[] argv) {
 	return daemon (null, null, null, argv);
     }
 }
diff --git a/frysk-sys/frysk/sys/TestFork.java b/frysk-sys/frysk/sys/TestFork.java
index 308b785..0ab8809 100644
--- a/frysk-sys/frysk/sys/TestFork.java
+++ b/frysk-sys/frysk/sys/TestFork.java
@@ -75,13 +75,14 @@ public class TestFork
 	assertTrue("SIGHUP masked",
 		   new SignalSet().getProcMask().contains(Signal.HUP));
 	logger.log(Level.FINE, "Creating funit-procmask to check the mask\n");
-	int pid = Fork.exec(null, "/dev/null", null,
-			    new String[] {
-				Config.getPkgLibFile("funit-procmask")
-				.getPath(),
-				"-n",
-				"1"
-			    });
+	ProcessIdentifier pid
+	    = Fork.exec(null, "/dev/null", null,
+			new String[] {
+			    Config.getPkgLibFile("funit-procmask")
+			    .getPath(),
+			    "-n",
+			    "1"
+			});
 	TearDownProcess.add(pid);
 	// Capture the child's status; to see if it was correct.
 	class ExitStatus extends UnhandledWaitBuilder {
@@ -111,7 +112,7 @@ public class TestFork
 		  },
 		  getTimeoutMilliseconds());
 	// (a timeout will also fail with the below)
-	assertEquals("pid", pid, exitStatus.pid);
+	assertEquals("pid", pid.intValue(), exitStatus.pid);
 	assertEquals("signal", null, exitStatus.signal);
 	assertEquals("status", 0, exitStatus.status);
     }
diff --git a/frysk-sys/frysk/sys/TestPtrace.java b/frysk-sys/frysk/sys/TestPtrace.java
index 97c016f..7b9a8b8 100644
--- a/frysk-sys/frysk/sys/TestPtrace.java
+++ b/frysk-sys/frysk/sys/TestPtrace.java
@@ -61,52 +61,48 @@ public class TestPtrace
 	TearDownProcess.tearDown ();
     }
  
-    public void testChildContinue ()
-    {
-	final int pid = Fork.ptrace(null, null, null,
-				    new String[] { "/bin/true" });
-	assertTrue ("pid", pid > 0);
-	TearDownProcess.add (pid);
+    public void testChildContinue() {
+	final ProcessIdentifier pid
+	    = Fork.ptrace(null, null, null,
+			  new String[] {
+			      "/bin/true"
+			  });
+	assertTrue("pid", pid.intValue() > 0);
+	TearDownProcess.add(pid);
 	
 	// The initial stop.
-	Wait.waitAll (pid, new UnhandledWaitBuilder ()
-	    {
-		private final int id = pid;
-		protected void unhandled (String why)
-		{
+	Wait.waitAll(pid, new UnhandledWaitBuilder() {
+		private final ProcessIdentifier id = pid;
+		protected void unhandled(String why) {
 		    fail (why);
 		}
 		public void stopped(int pid, Signal signal) {
-		    assertEquals("stopped pid", id, pid);
+		    assertEquals("stopped pid", id.intValue(), pid);
 		    assertEquals("stopped sig", Signal.TRAP, signal);
 		}
 	    });
 
 	Ptrace.singleStep(pid, Signal.NONE);
-	Wait.waitAll (pid, new UnhandledWaitBuilder ()
-	    {
-		private final int id = pid;
-		protected void unhandled (String why)
-		{
+	Wait.waitAll(pid, new UnhandledWaitBuilder() {
+		private final ProcessIdentifier id = pid;
+		protected void unhandled(String why) {
 		    fail (why);
 		}
 		public void stopped(int pid, Signal signal) {
-		    assertEquals("stopped pid", id, pid);
+		    assertEquals("stopped pid", id.intValue(), pid);
 		    assertEquals("stopped sig", Signal.TRAP, signal);
 		}
 	    });
 
 	Ptrace.cont(pid, Signal.TERM);
-	Wait.waitAll (pid, new UnhandledWaitBuilder ()
-	    {
-		private final int id = pid;
-		protected void unhandled (String why)
-		{
+	Wait.waitAll(pid, new UnhandledWaitBuilder() {
+		private final ProcessIdentifier id = pid;
+		protected void unhandled(String why) {
 		    fail (why);
 		}
 		public void terminated(int pid, Signal signal, int status,
 				       boolean coreDumped) {
-		    assertEquals("terminated pid", id, pid);
+		    assertEquals("terminated pid", id.intValue(), pid);
 		    assertEquals("terminated signal", Signal.TERM, signal);
 		    assertEquals("terminated status", -Signal.TERM.intValue(),
 				 status);
diff --git a/frysk-sys/frysk/sys/TestWait.java b/frysk-sys/frysk/sys/TestWait.java
index ab51104..d52f655 100644
--- a/frysk-sys/frysk/sys/TestWait.java
+++ b/frysk-sys/frysk/sys/TestWait.java
@@ -108,11 +108,11 @@ public class TestWait
 
     public void testNoTimeout() {
 	WaitOnChild waitOnChild = new WaitOnChild ();
-	int pid = Fork.exec (new String[] { "/bin/false" });
+	ProcessIdentifier pid = Fork.exec(new String[] { "/bin/false" });
 	assertFalse("timeout",
-		    Wait.waitAll (getTimeoutMilliseconds (), waitOnChild,
-				  unhandledSignalBuilder));
-	assertEquals ("pid", pid, waitOnChild.pid);
+		    Wait.waitAll(getTimeoutMilliseconds (), waitOnChild,
+				 unhandledSignalBuilder));
+	assertEquals ("pid", pid.intValue(), waitOnChild.pid);
     }
 
 
@@ -167,20 +167,20 @@ public class TestWait
 
     public void testWaitExit0() {
 	WaitOnChild waitOnChild = new WaitOnChild();
-	int pid = Fork.exec(new String[] { "/bin/true" });
+	ProcessIdentifier pid = Fork.exec(new String[] { "/bin/true" });
 	Wait.waitAll(getTimeoutMilliseconds(), waitOnChild,
 		     unhandledSignalBuilder);
-	assertEquals("pid", pid, waitOnChild.pid);
+	assertEquals("pid", pid.intValue(), waitOnChild.pid);
 	assertEquals("signal", null, waitOnChild.signal);
 	assertEquals("status", 0, waitOnChild.status);
     }
 
     public void testWaitExit1() {
 	WaitOnChild waitOnChild = new WaitOnChild();
-	int pid = Fork.exec(new String[] { "/bin/false" });
+	ProcessIdentifier pid = Fork.exec(new String[] { "/bin/false" });
 	Wait.waitAll(getTimeoutMilliseconds(), waitOnChild,
 		     unhandledSignalBuilder);
-	assertEquals("pid", pid, waitOnChild.pid);
+	assertEquals("pid", pid.intValue(), waitOnChild.pid);
 	assertEquals("signal", null, waitOnChild.signal);
 	assertEquals("status", 1, waitOnChild.status);
     }
diff --git a/frysk-sys/frysk/sys/Wait.java b/frysk-sys/frysk/sys/Wait.java
index 74235e6..80c1a10 100644
--- a/frysk-sys/frysk/sys/Wait.java
+++ b/frysk-sys/frysk/sys/Wait.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2005, 2007, Red Hat Inc.
+// Copyright 2005, 2007, 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
@@ -46,15 +46,13 @@ import java.util.logging.Logger;
  * tasks.
  */
 
-public final class Wait
-{
+public final class Wait {
     private static Logger logger;
     /**
      * Finds, and returns the logger, but only when logging is
      * enabled..
      */
-    static Logger getLogger ()
-    {
+    static Logger getLogger() {
 	// Seems that when calling a native static methods this isn't
 	// initialized, force it.
 	if (logger == null)
@@ -69,18 +67,18 @@ public final class Wait
     /**
      * Add Sig to the set of signals checked during poll.
      */
-    public static native void signalAdd (Signal sig);
+    public static native void signalAdd(Signal sig);
     /**
      * Empty the set of signals, and file descriptors, checked during
      * poll.
      */
-    public static native void signalEmpty ();
+    public static native void signalEmpty();
 
     /**
      * Read in all the pending wait events, and then pass them to the
      * observer.  If there is no outstanding event return immediatly.
      */
-    public native static void waitAllNoHang (WaitBuilder builder);
+    public native static void waitAllNoHang(WaitBuilder builder);
     /**
      * Wait for a waitpid or signal event.  Returns when at least one
      * event has been received, or the specified timeout has expired.
@@ -97,45 +95,60 @@ public final class Wait
      * Return true if the timeout expired; note that waitpid events
      * may have also been processed.
      */
-    public static native boolean wait (int pid,
-				       WaitBuilder waitBuilder,
-				       SignalBuilder signalBuilder,
-				       long millisecondTimeout,
-				       boolean ignoreECHILD);
-    public static boolean wait (int pid,
-				WaitBuilder waitBuilder,
-				SignalBuilder signalBuilder,
-				long millisecondTimeout) {
+    public static boolean wait(ProcessIdentifier pid,
+			       WaitBuilder waitBuilder,
+			       SignalBuilder signalBuilder,


hooks/post-receive
--
frysk system monitor/debugger


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-02-06 22:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-06 22:25 [SCM] master: frysk.sys.Fork.* return a ProcessIdentifier cagney

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).