From 7c4d50dccf3080965c202f63aa56439e3824eaf3 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 25 Apr 2018 21:33:57 +0200 Subject: Revert "Update NSPR to 4.18" This reverts commit 8781f745556be5d7402d0f3adc67ecfe32fe04a0. --- nsprpub/pr/src/md/unix/unix.c | 17 +++++++++++++++++ nsprpub/pr/src/md/unix/uxproces.c | 4 ++++ 2 files changed, 21 insertions(+) (limited to 'nsprpub/pr/src/md/unix') diff --git a/nsprpub/pr/src/md/unix/unix.c b/nsprpub/pr/src/md/unix/unix.c index 29e24e574..662f561b6 100644 --- a/nsprpub/pr/src/md/unix/unix.c +++ b/nsprpub/pr/src/md/unix/unix.c @@ -2854,11 +2854,28 @@ void _PR_UnixInit(void) #endif #endif /* !defined(_PR_PTHREADS) */ + /* + * Under HP-UX DCE threads, sigaction() installs a per-thread + * handler, so we use sigvector() to install a process-wide + * handler. + */ +#if defined(HPUX) && defined(_PR_DCETHREADS) + { + struct sigvec vec; + + vec.sv_handler = SIG_IGN; + vec.sv_mask = 0; + vec.sv_flags = 0; + rv = sigvector(SIGPIPE, &vec, NULL); + PR_ASSERT(0 == rv); + } +#else sigact.sa_handler = SIG_IGN; sigemptyset(&sigact.sa_mask); sigact.sa_flags = 0; rv = sigaction(SIGPIPE, &sigact, 0); PR_ASSERT(0 == rv); +#endif /* HPUX && _PR_DCETHREADS */ _pr_rename_lock = PR_NewLock(); PR_ASSERT(NULL != _pr_rename_lock); diff --git a/nsprpub/pr/src/md/unix/uxproces.c b/nsprpub/pr/src/md/unix/uxproces.c index 18f23fde8..5286b9e18 100644 --- a/nsprpub/pr/src/md/unix/uxproces.c +++ b/nsprpub/pr/src/md/unix/uxproces.c @@ -685,6 +685,10 @@ static void pr_SigchldHandler(int sig) static void pr_InstallSigchldHandler() { +#if defined(HPUX) && defined(_PR_DCETHREADS) +#error "HP-UX DCE threads have their own SIGCHLD handler" +#endif + struct sigaction act, oact; int rv; -- cgit v1.2.3