]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Replace two exported functions with one.
authorNicholas Nethercote <njn@valgrind.org>
Thu, 12 May 2005 03:47:31 +0000 (03:47 +0000)
committerNicholas Nethercote <njn@valgrind.org>
Thu, 12 May 2005 03:47:31 +0000 (03:47 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3669

coregrind/core.h
coregrind/vg_scheduler.c
coregrind/vg_signals.c

index e6ad55d213759cad05eaa7c5d951056973aa1c3e..8e035d73e7e20909ccda5f4152016d96bca941a1 100644 (file)
@@ -546,11 +546,8 @@ extern Int VG_(do_sys_sigprocmask) ( ThreadId tid, Int how,
                                      vki_sigset_t* set,
                                      vki_sigset_t* oldset );
 
-/* Handy utilities to block/restore all host signals. */
-extern void VG_(block_all_host_signals) 
-                  ( /* OUT */ vki_sigset_t* saved_mask );
-extern void VG_(restore_all_host_signals) 
-                  ( /* IN */ vki_sigset_t* saved_mask );
+extern void VG_(clear_out_queued_signals) 
+                  ( ThreadId tid, /* OUT */ vki_sigset_t* saved_mask );
 
 extern void VG_(kill_self)(Int sigNo);
 
index ea8c0ad972d44b0e07f1b0547c3513df8bbedde0..87ab433c899835ae8c32b98c8c20cc5157759b6c 100644 (file)
@@ -578,13 +578,7 @@ void mostly_clear_thread_record ( ThreadId tid )
    VG_(threads)[tid].altstack.ss_size = 0;
    VG_(threads)[tid].altstack.ss_flags = VKI_SS_DISABLE;
 
-   /* clear out queued signals */
-   VG_(block_all_host_signals)(&savedmask);
-   if (VG_(threads)[tid].sig_queue != NULL) {
-      VG_(arena_free)(VG_AR_CORE, VG_(threads)[tid].sig_queue);
-      VG_(threads)[tid].sig_queue = NULL;
-   }
-   VG_(restore_all_host_signals)(&savedmask);
+   VG_(clear_out_queued_signals)(tid, &savedmask);
 
    VG_(threads)[tid].sched_jmpbuf_valid = False;
 }
index fdcb15d8e41f410dae2a3bacc38bca043b89c55e..0d00888eef11f9c047d6161cf574c2893b58e42f 100644 (file)
@@ -727,7 +727,7 @@ int VG_(do_sys_sigprocmask) ( ThreadId tid,
    ------------------------------------------------------------------ */
 
 /* Block all host signals, dumping the old mask in *saved_mask. */
-void VG_(block_all_host_signals) ( /* OUT */ vki_sigset_t* saved_mask )
+static void block_all_host_signals ( /* OUT */ vki_sigset_t* saved_mask )
 {
    Int           ret;
    vki_sigset_t block_procmask;
@@ -738,13 +738,23 @@ void VG_(block_all_host_signals) ( /* OUT */ vki_sigset_t* saved_mask )
 }
 
 /* Restore the blocking mask using the supplied saved one. */
-void VG_(restore_all_host_signals) ( /* IN */ vki_sigset_t* saved_mask )
+static void restore_all_host_signals ( /* IN */ vki_sigset_t* saved_mask )
 {
    Int ret;
    ret = VG_(sigprocmask)(VKI_SIG_SETMASK, saved_mask, NULL);
    vg_assert(ret == 0);
 }
 
+void VG_(clear_out_queued_signals)( ThreadId tid, vki_sigset_t* saved_mask )
+{
+   block_all_host_signals(saved_mask);
+   if (VG_(threads)[tid].sig_queue != NULL) {
+      VG_(arena_free)(VG_AR_CORE, VG_(threads)[tid].sig_queue);
+      VG_(threads)[tid].sig_queue = NULL;
+   }
+   restore_all_host_signals(saved_mask);
+}
+
 Bool VG_(client_signal_OK)(Int sigNo)
 {
    /* signal 0 is OK for kill */
@@ -1552,7 +1562,7 @@ void queue_signal(ThreadId tid, const vki_siginfo_t *si)
    tst = VG_(get_ThreadState)(tid);
 
    /* Protect the signal queue against async deliveries */
-   VG_(block_all_host_signals)(&savedmask);
+   block_all_host_signals(&savedmask);
 
    if (tst->sig_queue == NULL) {
       tst->sig_queue = VG_(arena_malloc)(VG_AR_CORE, sizeof(*tst->sig_queue));
@@ -1577,7 +1587,7 @@ void queue_signal(ThreadId tid, const vki_siginfo_t *si)
    sq->sigs[sq->next] = *si;
    sq->next = (sq->next+1) % N_QUEUED_SIGNALS;
 
-   VG_(restore_all_host_signals)(&savedmask);
+   restore_all_host_signals(&savedmask);
 }
 
 /*
@@ -2018,7 +2028,7 @@ void VG_(poll_signals)(ThreadId tid)
 
    //VG_(printf)("tid %d pollset=%08x%08x\n", tid, pollset.sig[1], pollset.sig[0]);
 
-   VG_(block_all_host_signals)(&saved_mask); // protect signal queue
+   block_all_host_signals(&saved_mask); // protect signal queue
 
    /* First look for any queued pending signals */
    sip = next_queued(tid, &pollset); /* this thread */
@@ -2047,7 +2057,7 @@ void VG_(poll_signals)(ThreadId tid)
                                   where it came from */
    }
 
-   VG_(restore_all_host_signals)(&saved_mask);
+   restore_all_host_signals(&saved_mask);
 }
 
 /* At startup, copy the process' real signal state to the SCSS.
@@ -2064,7 +2074,7 @@ void VG_(sigstartup_actions) ( void )
    /* Block all signals.  saved_procmask remembers the previous mask,
       which the first thread inherits.
    */
-   VG_(block_all_host_signals)( &saved_procmask );
+   block_all_host_signals( &saved_procmask );
 
    /* Copy per-signal settings to SCSS. */
    for (i = 1; i <= _VKI_NSIG; i++) {