This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] suspend all thread on SIGSTOP


This time with attachment.

This patch suspends all threads on SIGSTOP and resumes them on SIGCONT. The corresponding functions in the pthread class are already committed.

Thomas

2003-10-31 Thomas Pfaff <tpfaff@gmx.net>

	* exceptions.cc (sig_handle_tty_stop): Suspend all
	threads on SIGSTOP, resume them on SIGCONT.

? suspend_all_on_stop.patch
Index: exceptions.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/exceptions.cc,v
retrieving revision 1.172
diff -u -p -r1.172 exceptions.cc
--- exceptions.cc	14 Oct 2003 09:21:55 -0000	1.172
+++ exceptions.cc	31 Oct 2003 20:48:59 -0000
@@ -622,10 +622,12 @@ sig_handle_tty_stop (int sig)
       if (ISSTATE (parent, PID_NOCLDSTOP))
 	sig_send (parent, SIGCHLD);
     }
+  pthread::suspend_all_except_self ();
   sigproc_printf ("process %d stopped by signal %d, myself->ppid_handle %p",
 		  myself->pid, sig, myself->ppid_handle);
   if (WaitForSingleObject (sigCONT, INFINITE) != WAIT_OBJECT_0)
     api_fatal ("WaitSingleObject failed, %E");
+  pthread::resume_all ();
   return;
 }
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]