Implement pause().


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@442 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_include.h b/coregrind/vg_include.h
index 182cb3c..bdafd3f 100644
--- a/coregrind/vg_include.h
+++ b/coregrind/vg_include.h
@@ -505,6 +505,7 @@
 #define VG_USERREQ__GET_KEY_D_AND_S         0x3022
 
 #define VG_USERREQ__NUKE_OTHER_THREADS      0x3023
+#define VG_USERREQ__GET_N_SIGS_RETURNED     0x3024
 
 
 /* Cosmetic ... */
@@ -644,6 +645,12 @@
          is the set of signals for which we are sigwait()ing. */
       vki_ksigset_t sigs_waited_for;
 
+      /* Counts the number of times a signal handler for this thread
+         has returned.  This makes it easy to implement pause(), by
+         polling this value, of course interspersed with nanosleeps,
+         and waiting till it changes. */
+      UInt n_signals_returned;
+
       /* Stacks.  When a thread slot is freed, we don't deallocate its
          stack; we just leave it lying around for the next use of the
          slot.  If the next use of the slot requires a larger stack,