From 985d0e68c5f100a6996e43a08eff82981b558ec9 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Mon, 6 Feb 2006 18:24:11 +0000 Subject: Always zero all elements of siginfo_t throughout. * cygtls.h (_cygtls::thread_context): Declare new field. (_cygtls::thread_id): Ditto. (_cygtls::signal_exit): Move into this class. (_cygtls::copy_context): Declare new function. (_cygtls::signal_debugger): Ditto. * cygtls.cc (_cygtls::init_thread): Fill out thread id field. * exceptions.cc (exception): Change message when exception info is unknown. Copy context to thread local storage. (_cygtls::handle_exceptions): Avoid double test for fault_guarded. Reflect move of signal_exit to _cygtls class. (sigpacket::process): Copy context to thread local storage. (_cygtls::signal_exit): Move to _cygtls class. Call signal_debugger to notify debugger of exiting signal (WIP). Call stackdump here (WIP). (_cygtls::copy_context): Define new function. (_cygtls::signal_debugger): Ditto. * tlsoffsets.h: Regenerate. * include/cygwin.h (_fpstate): New internal structure. (ucontext): Declare new structure (WIP). (__COPY_CONTEXT_SIZE): New define. * exceptions.cc (_cygtls::interrupt_setup): Clear "threadkill" field when there is no sigwaiting thread. (setup_handler): Move event handling into interrupt_setup. --- winsup/cygwin/thread.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'winsup/cygwin/thread.cc') diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 8ad16c3c8..d7b2a1fa2 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -2870,12 +2870,11 @@ pthread_kill (pthread_t thread, int sig) if (!pthread::is_good_object (&thread)) return EINVAL; - siginfo_t si; + siginfo_t si = {0}; si.si_signo = sig; si.si_code = SI_USER; si.si_pid = myself->pid; si.si_uid = myself->uid; - si.si_errno = 0; thread->cygtls->set_threadkill (); int rval = sig ? sig_send (NULL, si, thread->cygtls) : 0; -- cgit v1.2.3