This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.26-104-gbbf5c43
- From: fw at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 15 Aug 2017 16:13:24 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26-104-gbbf5c43
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via bbf5c4388acdd83fe651c82c6af5e1958202101f (commit)
from 6014c65de2ac75ac4ef147754d80c7992f07ece8 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bbf5c4388acdd83fe651c82c6af5e1958202101f
commit bbf5c4388acdd83fe651c82c6af5e1958202101f
Author: Florian Weimer <fweimer@redhat.com>
Date: Tue Aug 15 17:28:37 2017 +0200
aio: Remove support for BROKEN_THREAD_SIGNALS
This was originally added to support LinuxThreads and is not needed for
NPTL.
diff --git a/ChangeLog b/ChangeLog
index 2047e4e..fdea6b6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2017-08-15 Florian Weimer <fweimer@redhat.com>
+ Remove BROKEN_THREAD_SIGNALS support for LinuxThreads.
+ * sysdeps/pthread/aio_misc.c (__aio_enqueue_request): Remove
+ BROKEN_THREAD_SIGNALS code.
+ * sysdeps/ppthread/aio_misc.h (struct waitlist, struct
+ request_list): Remove caller_pid member used for
+ BROKEN_THREAD_SIGNALS.
+ [BROKEN_THREAD_SIGNALS] (__aio_notify_only): Remove declaration.
+ * sysdeps/pthread/aio_notify.c (__aio_notify_only, __aio_notify):
+ Remove BROKEN_THREAD_SIGNALS support.
+ * sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise.
+ * sysdeps/pthread/lio_listio.c (lio_listio_internal): Likewise.
+
+2017-08-15 Florian Weimer <fweimer@redhat.com>
+
* gmon/Makefile (tests): Add tst-gmon.
(CFLAGS-tst-gmon.c, LDFLAGS-tst-gmon, CRT-tst-gmon, tst-gmon-ENV):
Set.
diff --git a/sysdeps/pthread/aio_misc.c b/sysdeps/pthread/aio_misc.c
index 98fdc66..511a097 100644
--- a/sysdeps/pthread/aio_misc.c
+++ b/sysdeps/pthread/aio_misc.c
@@ -350,10 +350,6 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
return NULL;
}
newp->aiocbp = aiocbp;
-#ifdef BROKEN_THREAD_SIGNALS
- newp->caller_pid = (aiocbp->aiocb.aio_sigevent.sigev_notify == SIGEV_SIGNAL
- ? getpid () : 0);
-#endif
newp->waiting = NULL;
aiocbp->aiocb.__abs_prio = prio;
diff --git a/sysdeps/pthread/aio_misc.h b/sysdeps/pthread/aio_misc.h
index 3315d82..6e9e06f 100644
--- a/sysdeps/pthread/aio_misc.h
+++ b/sysdeps/pthread/aio_misc.h
@@ -54,11 +54,6 @@ struct waitlist
volatile unsigned int *counterp;
/* The next field is used in asynchronous `lio_listio' operations. */
struct sigevent *sigevp;
-#ifdef BROKEN_THREAD_SIGNALS
- /* XXX See requestlist, it's used to work around the broken signal
- handling in Linux. */
- pid_t caller_pid;
-#endif
};
@@ -86,12 +81,6 @@ struct requestlist
/* Pointer to the actual data. */
aiocb_union *aiocbp;
-#ifdef BROKEN_THREAD_SIGNALS
- /* PID of the initiator thread.
- XXX This is only necessary for the broken signal handling on Linux. */
- pid_t caller_pid;
-#endif
-
/* List of waiting processes. */
struct waitlist *waiting;
};
@@ -128,13 +117,8 @@ extern void __aio_notify (struct requestlist *req)
attribute_hidden internal_function;
/* Notify initiator of request. */
-#ifdef BROKEN_THREAD_SIGNALS
-extern int __aio_notify_only (struct sigevent *sigev, pid_t caller_pid)
- attribute_hidden internal_function;
-#else
extern int __aio_notify_only (struct sigevent *sigev)
attribute_hidden internal_function;
-#endif
/* Send the signal. */
extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
diff --git a/sysdeps/pthread/aio_notify.c b/sysdeps/pthread/aio_notify.c
index 03f4e00..19a4729 100644
--- a/sysdeps/pthread/aio_notify.c
+++ b/sysdeps/pthread/aio_notify.c
@@ -49,11 +49,7 @@ notify_func_wrapper (void *arg)
int
internal_function
-#ifdef BROKEN_THREAD_SIGNALS
-__aio_notify_only (struct sigevent *sigev, pid_t caller_pid)
-#else
__aio_notify_only (struct sigevent *sigev)
-#endif
{
int result = 0;
@@ -99,15 +95,9 @@ __aio_notify_only (struct sigevent *sigev)
#if _POSIX_REALTIME_SIGNALS > 0
/* Note that the standard gives us the option of using a plain
non-queuing signal here when SA_SIGINFO is not set for the signal. */
-# ifdef BROKEN_THREAD_SIGNALS
- if (__aio_sigqueue (sigev->sigev_signo, sigev->sigev_value, caller_pid)
- < 0)
- result = -1;
-# else
if (__aio_sigqueue (sigev->sigev_signo, sigev->sigev_value, getpid ())
< 0)
result = -1;
-# endif
#else
/* There are no queued signals on this system at all. */
result = raise (sigev->sigev_signo);
@@ -125,11 +115,7 @@ __aio_notify (struct requestlist *req)
struct waitlist *waitlist;
struct aiocb *aiocbp = &req->aiocbp->aiocb;
-#ifdef BROKEN_THREAD_SIGNALS
- if (__aio_notify_only (&aiocbp->aio_sigevent, req->caller_pid) != 0)
-#else
if (__aio_notify_only (&aiocbp->aio_sigevent) != 0)
-#endif
{
/* XXX What shall we do if already an error is set by
read/write/fsync? */
@@ -162,11 +148,7 @@ __aio_notify (struct requestlist *req)
this request is the last one, send the signal. */
if (--*waitlist->counterp == 0)
{
-#ifdef BROKEN_THREAD_SIGNALS
- __aio_notify_only (waitlist->sigevp, waitlist->caller_pid);
-#else
__aio_notify_only (waitlist->sigevp);
-#endif
/* This is tricky. See lio_listio.c for the reason why
this works. */
free ((void *) waitlist->counterp);
diff --git a/sysdeps/pthread/aio_suspend.c b/sysdeps/pthread/aio_suspend.c
index c739285..529b0d7 100644
--- a/sysdeps/pthread/aio_suspend.c
+++ b/sysdeps/pthread/aio_suspend.c
@@ -145,9 +145,6 @@ aio_suspend (const struct aiocb *const list[], int nent,
waitlist[cnt].next = requestlist[cnt]->waiting;
waitlist[cnt].counterp = &cntr;
waitlist[cnt].sigevp = NULL;
-#ifdef BROKEN_THREAD_SIGNALS
- waitlist[cnt].caller_pid = 0; /* Not needed. */
-#endif
requestlist[cnt]->waiting = &waitlist[cnt];
any = true;
}
diff --git a/sysdeps/pthread/lio_listio.c b/sysdeps/pthread/lio_listio.c
index e30858a..e9d3f38 100644
--- a/sysdeps/pthread/lio_listio.c
+++ b/sysdeps/pthread/lio_listio.c
@@ -107,14 +107,7 @@ lio_listio_internal (int mode, struct aiocb *const list[], int nent,
pthread_mutex_unlock (&__aio_requests_mutex);
if (LIO_MODE (mode) == LIO_NOWAIT)
- {
-#ifdef BROKEN_THREAD_SIGNALS
- __aio_notify_only (sig,
- sig->sigev_notify == SIGEV_SIGNAL ? getpid () : 0);
-#else
__aio_notify_only (sig);
-#endif
- }
return result;
}
@@ -140,9 +133,6 @@ lio_listio_internal (int mode, struct aiocb *const list[], int nent,
waitlist[cnt].next = requests[cnt]->waiting;
waitlist[cnt].counterp = &total;
waitlist[cnt].sigevp = NULL;
-#ifdef BROKEN_THREAD_SIGNALS
- waitlist[cnt].caller_pid = 0; /* Not needed. */
-#endif
requests[cnt]->waiting = &waitlist[cnt];
++total;
}
@@ -190,9 +180,6 @@ lio_listio_internal (int mode, struct aiocb *const list[], int nent,
}
else
{
-#ifdef BROKEN_THREAD_SIGNALS
- pid_t caller_pid = sig->sigev_notify == SIGEV_SIGNAL ? getpid () : 0;
-#endif
total = 0;
for (cnt = 0; cnt < nent; ++cnt)
@@ -209,9 +196,6 @@ lio_listio_internal (int mode, struct aiocb *const list[], int nent,
waitlist->list[cnt].next = requests[cnt]->waiting;
waitlist->list[cnt].counterp = &waitlist->counter;
waitlist->list[cnt].sigevp = &waitlist->sigev;
-#ifdef BROKEN_THREAD_SIGNALS
- waitlist->list[cnt].caller_pid = caller_pid;
-#endif
requests[cnt]->waiting = &waitlist->list[cnt];
++total;
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 14 ++++++++++++++
sysdeps/pthread/aio_misc.c | 4 ----
sysdeps/pthread/aio_misc.h | 16 ----------------
sysdeps/pthread/aio_notify.c | 18 ------------------
sysdeps/pthread/aio_suspend.c | 3 ---
sysdeps/pthread/lio_listio.c | 16 ----------------
6 files changed, 14 insertions(+), 57 deletions(-)
hooks/post-receive
--
GNU C Library master sources