* cygtls.h (_cygtls::will_wait_for_signal): Rename from 'signal_waiting' to
something more expressive. Reflect rename throughout. (_cygtls::get_signal_arrived): Rename from create_signal_arrived. Move lock here. (_cygtls::set_signal_arrived): Use get_signal_arrived. * exceptions.cc (_cygtls::interrupt_setup): Use get_signal_arrived. * tlsoffsets.h: Regenerate.
This commit is contained in:
parent
8f9046ae61
commit
3211ef434d
|
@ -1,3 +1,14 @@
|
|||
2012-12-04 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||
|
||||
* cygtls.h (_cygtls::will_wait_for_signal): Rename from
|
||||
'signal_waiting' to something more expressive. Reflect rename
|
||||
throughout.
|
||||
(_cygtls::get_signal_arrived): Rename from create_signal_arrived. Move
|
||||
lock here.
|
||||
(_cygtls::set_signal_arrived): Use get_signal_arrived.
|
||||
* exceptions.cc (_cygtls::interrupt_setup): Use get_signal_arrived.
|
||||
* tlsoffsets.h: Regenerate.
|
||||
|
||||
2012-11-30 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||
|
||||
* spawn.cc (child_info_spawn::worker): Make detection of '/c' case
|
||||
|
|
|
@ -187,7 +187,7 @@ public:
|
|||
sigset_t sigwait_mask;
|
||||
siginfo_t *sigwait_info;
|
||||
HANDLE signal_arrived;
|
||||
bool signal_waiting;
|
||||
bool will_wait_for_signal;
|
||||
struct ucontext thread_context;
|
||||
DWORD thread_id;
|
||||
siginfo_t infodata;
|
||||
|
@ -233,27 +233,28 @@ public:
|
|||
void lock () __attribute__ ((regparm (1)));
|
||||
void unlock () __attribute__ ((regparm (1)));
|
||||
bool locked () __attribute__ ((regparm (1)));
|
||||
void create_signal_arrived ()
|
||||
HANDLE get_signal_arrived ()
|
||||
{
|
||||
signal_arrived = CreateEvent (&sec_none_nih, false, false, NULL);
|
||||
if (!signal_arrived)
|
||||
{
|
||||
lock ();
|
||||
if (!signal_arrived)
|
||||
signal_arrived = CreateEvent (&sec_none_nih, false, false, NULL);
|
||||
unlock ();
|
||||
}
|
||||
return signal_arrived;
|
||||
}
|
||||
void set_signal_arrived (bool setit, HANDLE& h)
|
||||
{
|
||||
if (!setit)
|
||||
signal_waiting = false;
|
||||
will_wait_for_signal = false;
|
||||
else
|
||||
{
|
||||
if (!signal_arrived)
|
||||
{
|
||||
lock ();
|
||||
create_signal_arrived ();
|
||||
unlock ();
|
||||
}
|
||||
h = signal_arrived;
|
||||
signal_waiting = true;
|
||||
h = get_signal_arrived ();
|
||||
will_wait_for_signal = true;
|
||||
}
|
||||
}
|
||||
void reset_signal_arrived () { signal_waiting = false; }
|
||||
void reset_signal_arrived () { will_wait_for_signal = false; }
|
||||
private:
|
||||
void call2 (DWORD (*) (void *, void *), void *, void *) __attribute__ ((regparm (3)));
|
||||
/*gentls_offsets*/
|
||||
|
@ -327,7 +328,7 @@ public:
|
|||
set_signal_arrived (bool setit, HANDLE& h) { _my_tls.set_signal_arrived (setit, h); }
|
||||
set_signal_arrived (HANDLE& h) { _my_tls.set_signal_arrived (true, h); }
|
||||
|
||||
operator int () const {return _my_tls.signal_waiting;}
|
||||
operator int () const {return _my_tls.will_wait_for_signal;}
|
||||
~set_signal_arrived () { _my_tls.reset_signal_arrived (); }
|
||||
};
|
||||
|
||||
|
|
|
@ -799,11 +799,7 @@ _cygtls::interrupt_setup (siginfo_t& si, void *handler, struct sigaction& siga)
|
|||
this->sig = si.si_signo; // Should always be last thing set to avoid a race
|
||||
|
||||
if (incyg)
|
||||
{
|
||||
if (!signal_arrived)
|
||||
create_signal_arrived ();
|
||||
SetEvent (signal_arrived);
|
||||
}
|
||||
SetEvent (get_signal_arrived ());
|
||||
|
||||
proc_subproc (PROC_CLEARWAIT, 1);
|
||||
sigproc_printf ("armed signal_arrived %p, signal %d", signal_arrived, si.si_signo);
|
||||
|
|
|
@ -27,8 +27,8 @@
|
|||
//; $tls::psigwait_info = 2584;
|
||||
//; $tls::signal_arrived = -10112;
|
||||
//; $tls::psignal_arrived = 2588;
|
||||
//; $tls::signal_waiting = -10108;
|
||||
//; $tls::psignal_waiting = 2592;
|
||||
//; $tls::will_wait_for_signal = -10108;
|
||||
//; $tls::pwill_wait_for_signal = 2592;
|
||||
//; $tls::thread_context = -10104;
|
||||
//; $tls::pthread_context = 2596;
|
||||
//; $tls::thread_id = -9892;
|
||||
|
@ -85,8 +85,8 @@
|
|||
#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_will_wait_for_signal (-10108)
|
||||
#define tls_pwill_wait_for_signal (2592)
|
||||
#define tls_thread_context (-10104)
|
||||
#define tls_pthread_context (2596)
|
||||
#define tls_thread_id (-9892)
|
||||
|
|
Loading…
Reference in New Issue