mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
r11850@catbus: nickm | 2007-02-20 13:34:13 -0500
Apply patch from coderman: have posix subthreads mask out signals. This could prevent some kinds of crashes when subthreads try to handle SIGPIPEs and die in the attempt. Backport candidate. svn:r9603
This commit is contained in:
parent
986d0ac39b
commit
b6e6b7101b
@ -39,6 +39,9 @@ Changes in version 0.1.2.8-alpha - 2007-??-??
|
||||
- When EntryNodes are configured, rebuild the guard list to contain, in
|
||||
order: the EntryNodes that were guards before; the rest of the
|
||||
EntryNodes; the nodes that were guards before.
|
||||
- Mask out all signals in sub-threads; only the libevent signal handler
|
||||
should be processing them. This should prevent some crashes on some
|
||||
machines using pthreads. (Patch from coderman.)
|
||||
|
||||
o Minor features (controller):
|
||||
- Warn the user when an application uses the obsolete binary v0
|
||||
|
@ -82,6 +82,9 @@ const char compat_c_id[] =
|
||||
#ifdef HAVE_PTHREAD_H
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
#ifdef HAVE_SIGNAL_H
|
||||
#include <signal.h>
|
||||
#endif
|
||||
#ifdef HAVE_UTIME_H
|
||||
#include <utime.h>
|
||||
#endif
|
||||
@ -996,6 +999,12 @@ tor_pthread_helper_fn(void *_data)
|
||||
tor_pthread_data_t *data = _data;
|
||||
void (*func)(void*);
|
||||
void *arg;
|
||||
/* mask signals to worker threads to avoid SIGPIPE, etc */
|
||||
sigset_t sigs;
|
||||
/* We're in a subthread; don't handle any signals here. */
|
||||
sigfillset(&sigs);
|
||||
pthread_sigmask(SIG_SETMASK, &sigs, NULL);
|
||||
|
||||
func = data->func;
|
||||
arg = data->data;
|
||||
tor_free(_data);
|
||||
|
Loading…
Reference in New Issue
Block a user