public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: Re-suspend the process when detaching.
@ 2008-01-18 10:59 cagney
  0 siblings, 0 replies; only message in thread
From: cagney @ 2008-01-18 10:59 UTC (permalink / raw)
  To: frysk-cvs

The branch, master has been updated
       via  4cff0daa2996b28274985fa4674160f15e5fd9e2 (commit)
      from  f8dfdde94877f7789016ec62cfe35a8ab1b202b4 (commit)

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

- Log -----------------------------------------------------------------
commit 4cff0daa2996b28274985fa4674160f15e5fd9e2
Author: Andrew Cagney <cagney@redhat.com>
Date:   Fri Jan 18 05:54:54 2008 -0500

    Re-suspend the process when detaching.
    
    frysk-core/frysk/proc/ChangeLog
    2008-01-18  Andrew Cagney  <cagney@redhat.com>
    
    	* Task.java (toString()): Print the state.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-01-18  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceTask.java (sendDetach(int)): For SIGSTOP, send a
    	signal.
    	* LinuxPtraceTaskState.java: Don't loose the signal in
    	WaitForContinueorUnblock.

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

Summary of changes:
 frysk-core/frysk/proc/ChangeLog                    |    4 ++++
 frysk-core/frysk/proc/Task.java                    |    1 +
 frysk-core/frysk/proc/live/ChangeLog               |    5 +++++
 frysk-core/frysk/proc/live/LinuxPtraceTask.java    |    8 +++++++-
 .../frysk/proc/live/LinuxPtraceTaskState.java      |    2 +-
 5 files changed, 18 insertions(+), 2 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog
index eae536d..2eca8d0 100644
--- a/frysk-core/frysk/proc/ChangeLog
+++ b/frysk-core/frysk/proc/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-18  Andrew Cagney  <cagney@redhat.com>
+
+	* Task.java (toString()): Print the state.
+
 2008-01-17  Andrew Cagney  <cagney@redhat.com>
 
 	* StressAttachDetachSignaledTask.java (stressSignalStorm(Action))
diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java
index 6e65278..4fe05ad 100644
--- a/frysk-core/frysk/proc/Task.java
+++ b/frysk-core/frysk/proc/Task.java
@@ -164,6 +164,7 @@ public abstract class Task {
 	return ("{" + super.toString()
 		+ ",pid=" + proc.getPid()
 		+ ",tid=" + getTid()
+		+ ",state=" + getStateFIXME()
 		+ "}");
     }
 
diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog
index 51bffd4..e2106f8 100644
--- a/frysk-core/frysk/proc/live/ChangeLog
+++ b/frysk-core/frysk/proc/live/ChangeLog
@@ -1,5 +1,10 @@
 2008-01-18  Andrew Cagney  <cagney@redhat.com>
 
+	* LinuxPtraceTask.java (sendDetach(int)): For SIGSTOP, send a
+	signal.
+	* LinuxPtraceTaskState.java: Don't loose the signal in
+	WaitForContinueorUnblock.
+	
 	* TestProcStopped.java (testStoppedSignal()): New.
 	* LinuxPtraceTaskState.java (transitionToAttached): Merge signal code.
 
diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTask.java b/frysk-core/frysk/proc/live/LinuxPtraceTask.java
index ecf1a58..1d4633b 100644
--- a/frysk-core/frysk/proc/live/LinuxPtraceTask.java
+++ b/frysk-core/frysk/proc/live/LinuxPtraceTask.java
@@ -377,7 +377,13 @@ public class LinuxPtraceTask extends LiveTask {
 	logger.log(Level.FINE, "{0} sendDetach\n", this);
 	clearIsa();
 	try {
-	    Ptrace.detach(getTid(), sig);
+	    if (Signal.STOP.equals(sig)) {
+		logger.log(Level.FINE, "{0} sendDetach/signal STOP\n", this);
+		Signal.STOP.tkill(getTid());
+		Ptrace.detach(getTid(), 0);
+	    } else {
+		Ptrace.detach(getTid(), sig);
+	    }
 	} catch (Exception e) {
 	    // Ignore problems trying to detach, most of the time the
 	    // problem is the process has already left the cpu queue
diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTaskState.java b/frysk-core/frysk/proc/live/LinuxPtraceTaskState.java
index c629cc5..fe0eecc 100644
--- a/frysk-core/frysk/proc/live/LinuxPtraceTaskState.java
+++ b/frysk-core/frysk/proc/live/LinuxPtraceTaskState.java
@@ -390,7 +390,7 @@ class LinuxPtraceTaskState extends State {
 	    {
 		logger.log (Level.FINE, "{0} handleUnblock\n", task); 
 		task.blockers.remove (observer);
-		return Attached.waitForContinueOrUnblock;
+		return this;
 	    }
 	    LinuxPtraceTaskState handleContinue (LinuxPtraceTask task)
 	    {


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


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

only message in thread, other threads:[~2008-01-18 10:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-18 10:59 [SCM] master: Re-suspend the process when detaching 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).