* DevNotes: Add entry cgf-000013.
* cygserver_ipc.h (ipc_set_proc_info): Use _cygtls::ipc_set_proc_info to set per-thread signal arrived value. * cygthread.cc (cygthread::detach): Use per-thread signal_arrived via set_thread_waiting. * fork.cc (_cygtls::fixup_after_fork): Clear signal_arrived. (_cygtls::remove): Close any signal_arrived handle when thread exists. (_cygtls::find_tls): Remove unneeded function. * cygtls.h: Update copyright. (class _cygtls): Reorganize to help avoid rebuilding newlib when structure changes. (_cygtls::event): Delete. (_cygtls::threadkill): Ditto. (_cygtls::signal_waiting): Declare new bool. (_cygtls::find_tls): Delete declaration. (_cygtls::set_threadkill): Ditto. (_cygtls::reset_threadkill): Ditto. (_cygtls::set_signal_arrived): Declare new function. (class set_thread_waiting): Declare new class. * cygwait.cc (cw_nowait_storage): Define. (cygwait): Set per-thread signal_arrived via set_thread_waiting. Don't special-case _main_tls. * cygwait.h (cw_nowait): Define. (cw_infinite): Ditto. (cygwait): Redefine pathological wait-only case. * dcrt0.cc (dll_crt0_0): Remove call to now-defunct events_init(). (dll_crt0_1): Remove call to now-defunct create_signal_arrived(). * exceptions.cc: Reflect set_signal_mask() argument reordering throughout. Remove signal mask synchronization throughout. (events_init): Delete definition. (mask_sync): Delete now-unneeded mask synchronization. (set_signal_mask): Reverse order of arguments to "standard" to, from layout. Rename "newmask" argument to "setmask". Remove debugging. (sig_handle_tty_stop): Use cancelable_wait rather than WFMO. (_cygtls::interrupt_setup): Don't treat "threadkill" events specially. Conditionally set signal_arrived depending on whether the thread has created it or not. (sigpacket::process): Reorganize to reflect thread-specific sending of signals which is more in line with the way it was actually supposed to work. * fhandler_socket.cc (get_inet_addr): Use cancelable_wait rather than IsEventSignalled to avoid potential race. (fhandler_socket::wait_for_events): Set signal_arrived event using set_thread_waiting(). (fhandler_socket::close): Use cygwait for the case of just waiting 10 ms for a signal. * fhandler_tape.cc (fhandler_dev_tape::_lock): Use cancelable_wait rather than WFMO. Redo switch/case tests accordingly. * fhandler_termios.cc (fhandler_termios::bg_check): Use cygwait for case of just waiting 0 ms for a potential signal. * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Use cancelable_wait rather than WFSO. * fhandler_windows.cc (fhandler_windows::read): Set per-thread signal_arrived via set_thread_waiting(). * flock.cc (lf_setlock): Ditto. * select.cc (pselect): Ditto. Set per-thread signal_arrived using set_thread_waiting(). * gendef: Don't special case handling of _cygtls::sig for threads. * gentls_offsets: Use #pragma once in tlsoffsets.h. * ntdll.h: Use #pragma once. * poll.cc: Reflect set_signal_mask() argument reordering. * posix_ipc.cc (ipc_mutex_lock): Use cancelable_wait rather than WFMO. (ipc_cond_timedwait): Set perl-thread signal arrived using set_thread_waiting(). * security.h: Use #pragma once. * signal.cc (abort): Reflect set_signal_mask() argument reordering. (clock_nanosleep): Ditto. Change call to cancelable_wait to properly specify handling of cancel and interrupt. (sigwaitinfo): Remove handling of per-thread event in favor of per-thread signal_arrived. Use cancelable_wait rather than WFSO. * sigproc.cc (signal_arrived): Delete definition. (create_signal_arrived): Ditto. * sigproc.h (signal_arrived): Delete declaration. (set_signal_mask): Avoid defining as a "C" function. Don't conditionally declare. (create_signal_arrived): Delete declaration. * syscalls.cc (rename): Use cygwait() rather than WFSO. * thread.h (fast_mutex::lock): Use cw_infinite rather than LARGE_NULL. * wait.cc (wait4): Ditto. * thread.cc (pthread_mutex::lock): Ditto. (pthread::join): Ditto. (semaphore::_wait): Ditto. (pthread_kill): Remove set_threadkill() accommodation. * tlsoffsets.h: Regenerate.
This commit is contained in:
@@ -1,42 +1,42 @@
|
||||
//;# autogenerated: Do not edit.
|
||||
|
||||
//; $tls::sizeof__cygtls = 4048;
|
||||
//; $tls::func = -12700;
|
||||
//; $tls::pfunc = 0;
|
||||
//; $tls::saved_errno = -12696;
|
||||
//; $tls::psaved_errno = 4;
|
||||
//; $tls::sa_flags = -12692;
|
||||
//; $tls::psa_flags = 8;
|
||||
//; $tls::oldmask = -12688;
|
||||
//; $tls::poldmask = 12;
|
||||
//; $tls::deltamask = -12684;
|
||||
//; $tls::pdeltamask = 16;
|
||||
//; $tls::event = -12680;
|
||||
//; $tls::pevent = 20;
|
||||
//; $tls::errno_addr = -12676;
|
||||
//; $tls::perrno_addr = 24;
|
||||
//; $tls::sigmask = -12672;
|
||||
//; $tls::psigmask = 28;
|
||||
//; $tls::sigwait_mask = -12668;
|
||||
//; $tls::psigwait_mask = 32;
|
||||
//; $tls::sigwait_info = -12664;
|
||||
//; $tls::psigwait_info = 36;
|
||||
//; $tls::thread_context = -12660;
|
||||
//; $tls::pthread_context = 40;
|
||||
//; $tls::thread_id = -12448;
|
||||
//; $tls::pthread_id = 252;
|
||||
//; $tls::threadkill = -12444;
|
||||
//; $tls::pthreadkill = 256;
|
||||
//; $tls::infodata = -12440;
|
||||
//; $tls::pinfodata = 260;
|
||||
//; $tls::tid = -12292;
|
||||
//; $tls::ptid = 408;
|
||||
//; $tls::local_clib = -12288;
|
||||
//; $tls::plocal_clib = 412;
|
||||
//; $tls::__dontuse = -12288;
|
||||
//; $tls::p__dontuse = 412;
|
||||
//; $tls::locals = -11200;
|
||||
//; $tls::plocals = 1500;
|
||||
//; $tls::locals = -12700;
|
||||
//; $tls::plocals = 0;
|
||||
//; $tls::local_clib = -11236;
|
||||
//; $tls::plocal_clib = 1464;
|
||||
//; $tls::__dontuse = -11236;
|
||||
//; $tls::p__dontuse = 1464;
|
||||
//; $tls::func = -10148;
|
||||
//; $tls::pfunc = 2552;
|
||||
//; $tls::saved_errno = -10144;
|
||||
//; $tls::psaved_errno = 2556;
|
||||
//; $tls::sa_flags = -10140;
|
||||
//; $tls::psa_flags = 2560;
|
||||
//; $tls::oldmask = -10136;
|
||||
//; $tls::poldmask = 2564;
|
||||
//; $tls::deltamask = -10132;
|
||||
//; $tls::pdeltamask = 2568;
|
||||
//; $tls::errno_addr = -10128;
|
||||
//; $tls::perrno_addr = 2572;
|
||||
//; $tls::sigmask = -10124;
|
||||
//; $tls::psigmask = 2576;
|
||||
//; $tls::sigwait_mask = -10120;
|
||||
//; $tls::psigwait_mask = 2580;
|
||||
//; $tls::sigwait_info = -10116;
|
||||
//; $tls::psigwait_info = 2584;
|
||||
//; $tls::signal_arrived = -10112;
|
||||
//; $tls::psignal_arrived = 2588;
|
||||
//; $tls::signal_waiting = -10108;
|
||||
//; $tls::psignal_waiting = 2592;
|
||||
//; $tls::thread_context = -10104;
|
||||
//; $tls::pthread_context = 2596;
|
||||
//; $tls::thread_id = -9892;
|
||||
//; $tls::pthread_id = 2808;
|
||||
//; $tls::infodata = -9888;
|
||||
//; $tls::pinfodata = 2812;
|
||||
//; $tls::tid = -9740;
|
||||
//; $tls::ptid = 2960;
|
||||
//; $tls::_ctinfo = -9736;
|
||||
//; $tls::p_ctinfo = 2964;
|
||||
//; $tls::andreas = -9732;
|
||||
@@ -59,42 +59,42 @@
|
||||
//; $tls::pinitialized = 4044;
|
||||
//; __DATA__
|
||||
|
||||
#define tls_func (-12700)
|
||||
#define tls_pfunc (0)
|
||||
#define tls_saved_errno (-12696)
|
||||
#define tls_psaved_errno (4)
|
||||
#define tls_sa_flags (-12692)
|
||||
#define tls_psa_flags (8)
|
||||
#define tls_oldmask (-12688)
|
||||
#define tls_poldmask (12)
|
||||
#define tls_deltamask (-12684)
|
||||
#define tls_pdeltamask (16)
|
||||
#define tls_event (-12680)
|
||||
#define tls_pevent (20)
|
||||
#define tls_errno_addr (-12676)
|
||||
#define tls_perrno_addr (24)
|
||||
#define tls_sigmask (-12672)
|
||||
#define tls_psigmask (28)
|
||||
#define tls_sigwait_mask (-12668)
|
||||
#define tls_psigwait_mask (32)
|
||||
#define tls_sigwait_info (-12664)
|
||||
#define tls_psigwait_info (36)
|
||||
#define tls_thread_context (-12660)
|
||||
#define tls_pthread_context (40)
|
||||
#define tls_thread_id (-12448)
|
||||
#define tls_pthread_id (252)
|
||||
#define tls_threadkill (-12444)
|
||||
#define tls_pthreadkill (256)
|
||||
#define tls_infodata (-12440)
|
||||
#define tls_pinfodata (260)
|
||||
#define tls_tid (-12292)
|
||||
#define tls_ptid (408)
|
||||
#define tls_local_clib (-12288)
|
||||
#define tls_plocal_clib (412)
|
||||
#define tls___dontuse (-12288)
|
||||
#define tls_p__dontuse (412)
|
||||
#define tls_locals (-11200)
|
||||
#define tls_plocals (1500)
|
||||
#define tls_locals (-12700)
|
||||
#define tls_plocals (0)
|
||||
#define tls_local_clib (-11236)
|
||||
#define tls_plocal_clib (1464)
|
||||
#define tls___dontuse (-11236)
|
||||
#define tls_p__dontuse (1464)
|
||||
#define tls_func (-10148)
|
||||
#define tls_pfunc (2552)
|
||||
#define tls_saved_errno (-10144)
|
||||
#define tls_psaved_errno (2556)
|
||||
#define tls_sa_flags (-10140)
|
||||
#define tls_psa_flags (2560)
|
||||
#define tls_oldmask (-10136)
|
||||
#define tls_poldmask (2564)
|
||||
#define tls_deltamask (-10132)
|
||||
#define tls_pdeltamask (2568)
|
||||
#define tls_errno_addr (-10128)
|
||||
#define tls_perrno_addr (2572)
|
||||
#define tls_sigmask (-10124)
|
||||
#define tls_psigmask (2576)
|
||||
#define tls_sigwait_mask (-10120)
|
||||
#define tls_psigwait_mask (2580)
|
||||
#define tls_sigwait_info (-10116)
|
||||
#define tls_psigwait_info (2584)
|
||||
#define tls_signal_arrived (-10112)
|
||||
#define tls_psignal_arrived (2588)
|
||||
#define tls_signal_waiting (-10108)
|
||||
#define tls_psignal_waiting (2592)
|
||||
#define tls_thread_context (-10104)
|
||||
#define tls_pthread_context (2596)
|
||||
#define tls_thread_id (-9892)
|
||||
#define tls_pthread_id (2808)
|
||||
#define tls_infodata (-9888)
|
||||
#define tls_pinfodata (2812)
|
||||
#define tls_tid (-9740)
|
||||
#define tls_ptid (2960)
|
||||
#define tls__ctinfo (-9736)
|
||||
#define tls_p_ctinfo (2964)
|
||||
#define tls_andreas (-9732)
|
||||
|
Reference in New Issue
Block a user