Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2012-12-07 21:37:33 +0400
committerChristopher Faylor <me@cgf.cx>2012-12-07 21:37:33 +0400
commit0d1a50b81ab8e79642bfd17b019f3eb0a17073c6 (patch)
treebd39ad2b3599a22b1c09d220f1445fca187c30ef /winsup/cygwin
parent9873ac53d7a52f96784a98098d78b71677e6599c (diff)
* sigproc.h (sigpacket): Remove parameter names from declarations.
(sigpacket::sigtls): Rename from 'tls'. * exceptions.cc (sigpacket::process): Define local tls variable and assign that to sigtls if appropriate. Clarify debugging output. * sigproc.cc (sig_send): Accommodate tls -> sigtls rename. (pending_signals::add): Ditto. (wait_sig): Ditto.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog10
-rw-r--r--winsup/cygwin/exceptions.cc8
-rw-r--r--winsup/cygwin/sigproc.cc10
-rw-r--r--winsup/cygwin/sigproc.h6
4 files changed, 24 insertions, 10 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 7b2156afe..7e9d9ea1e 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,15 @@
2012-12-07 Christopher Faylor <me.cygwin2012@cgf.cx>
+ * sigproc.h (sigpacket): Remove parameter names from declarations.
+ (sigpacket::sigtls): Rename from 'tls'.
+ * exceptions.cc (sigpacket::process): Define local tls variable and
+ assign that to sigtls if appropriate. Clarify debugging output.
+ * sigproc.cc (sig_send): Accommodate tls -> sigtls rename.
+ (pending_signals::add): Ditto.
+ (wait_sig): Ditto.
+
+2012-12-07 Christopher Faylor <me.cygwin2012@cgf.cx>
+
* cygtls.h (_cygtls::get_signal_arrived): Add parameter to make
lock/unlock conditional.
* exceptions.cc (_cygtls::interrupt_setup): Don't get a lock when
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index c04e35af7..a28b90af5 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1123,6 +1123,7 @@ sigpacket::process ()
{
bool continue_now;
struct sigaction dummy = global_sigs[SIGSTOP];
+ _cygtls *tls;
if (si.si_signo != SIGCONT)
continue_now = false;
@@ -1168,8 +1169,11 @@ sigpacket::process ()
if (have_execed)
handler = NULL;
- if (tls)
- sigproc_printf ("using tls %p", tls);
+ if (sigtls)
+ {
+ tls = sigtls;
+ sigproc_printf ("using sigtls %p", tls);
+ }
else
{
tls = cygheap->find_tls (si.si_signo);
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index f682b849b..6c6bddb39 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -704,7 +704,7 @@ sig_send (_pinfo *p, siginfo_t& si, _cygtls *tls)
if (!pack.si.si_uid)
pack.si.si_uid = myself->uid;
pack.pid = myself->pid;
- pack.tls = tls;
+ pack.sigtls = tls;
if (wait_for_completion)
{
pack.wakeup = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL);
@@ -1299,7 +1299,7 @@ pending_signals::add (sigpacket& pack)
return;
se = sigs + pack.si.si_signo;
*se = pack;
- se->mask = &pack.tls->sigmask;
+ se->mask = &pack.sigtls->sigmask;
se->next = NULL;
if (end)
end->next = se;
@@ -1352,7 +1352,7 @@ wait_sig (VOID *)
if (pack.si.si_signo == __SIGHOLD)
WaitForSingleObject (sig_hold, INFINITE);
DWORD nb;
- pack.tls = NULL;
+ pack.sigtls = NULL;
if (!ReadFile (my_readsig, &pack, sizeof (pack), &nb, NULL))
break;
@@ -1393,7 +1393,7 @@ wait_sig (VOID *)
unsigned bit;
sigq.reset ();
while ((q = sigq.next ()))
- if (pack.tls->sigmask & (bit = SIGTOMASK (q->si.si_signo)))
+ if (pack.sigtls->sigmask & (bit = SIGTOMASK (q->si.si_signo)))
*pack.mask |= bit;
break;
case __SIGHOLD:
@@ -1428,7 +1428,7 @@ wait_sig (VOID *)
// FIXME: REALLY not right when taking threads into consideration.
// We need a per-thread queue since each thread can have its own
// list of blocked signals. CGF 2005-08-24
- if (sigq.sigs[sig].si.si_signo && sigq.sigs[sig].tls == pack.tls)
+ if (sigq.sigs[sig].si.si_signo && sigq.sigs[sig].sigtls == pack.sigtls)
sigproc_printf ("signal %d already queued", pack.si.si_signo);
else
{
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h
index d442232e9..b989f3fa1 100644
--- a/winsup/cygwin/sigproc.h
+++ b/winsup/cygwin/sigproc.h
@@ -47,7 +47,7 @@ struct sigpacket
{
siginfo_t si;
pid_t pid;
- class _cygtls *tls;
+ class _cygtls *sigtls;
sigset_t *mask;
union
{
@@ -56,7 +56,7 @@ struct sigpacket
struct sigpacket *next;
};
int __stdcall process () __attribute__ ((regparm (1)));
- int setup_handler (void *handler, struct sigaction& siga, _cygtls *tls)
+ int setup_handler (void *, struct sigaction&, _cygtls *)
__attribute__ ((regparm (3)));
};
@@ -80,7 +80,7 @@ void __stdcall sigproc_init ();
void __stdcall sigproc_terminate (enum exit_states);
#endif
bool __stdcall pid_exists (pid_t) __attribute__ ((regparm(1)));
-int __stdcall sig_send (_pinfo *, siginfo_t&, class _cygtls *tls = NULL) __attribute__ ((regparm (3)));
+int __stdcall sig_send (_pinfo *, siginfo_t&, class _cygtls * = NULL) __attribute__ ((regparm (3)));
int __stdcall sig_send (_pinfo *, int) __attribute__ ((regparm (2)));
void __stdcall signal_fixup_after_exec ();
void __stdcall sigalloc ();