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.21-534-g86edd44
- From: roland at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 25 Jun 2015 00:44:54 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.21-534-g86edd44
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 86edd44f04891c0bd0fd347cba4bfc2a13d94377 (commit)
from a7fcc2f8edb26e4d54b6a740aaa3f3bb0caebd14 (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=86edd44f04891c0bd0fd347cba4bfc2a13d94377
commit 86edd44f04891c0bd0fd347cba4bfc2a13d94377
Author: Roland McGrath <roland@hack.frob.com>
Date: Wed Jun 24 17:43:32 2015 -0700
Use unsigned types for counters in AIO code.
diff --git a/ChangeLog b/ChangeLog
index eb44829..9d06bc1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2015-06-24 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/pthread/aio_misc.h (struct waitlist): Change type of field
+ counterp to 'volatile unsigned int *'.
+ * sysdeps/pthread/aio_suspend.c [DONT_NEED_AIO_MISC_COND]
+ (do_aio_misc_wait): Give argument CNTR type 'unsigned int *'.
+ (aio_suspend): Give local variable CNTR type 'unsigned int'.
+ * sysdeps/pthread/lio_listio.c (lio_listio_internal):
+ Give local variable TOTAL type 'volatile unsigned int'.
+ (struct async_waitlist): Change type of field counter to 'unsigned int'.
+
2015-06-24 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18383]
diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
index fb69b0f..d5d1c08 100644
--- a/sysdeps/nptl/aio_misc.h
+++ b/sysdeps/nptl/aio_misc.h
@@ -34,8 +34,8 @@
#define AIO_MISC_WAIT(result, futex, timeout, cancel) \
do { \
- volatile int *futexaddr = &futex; \
- int oldval = futex; \
+ volatile unsigned int *futexaddr = &futex; \
+ unsigned int oldval = futex; \
\
if (oldval != 0) \
{ \
diff --git a/sysdeps/pthread/aio_misc.h b/sysdeps/pthread/aio_misc.h
index ffb0983..5d3fb61 100644
--- a/sysdeps/pthread/aio_misc.h
+++ b/sysdeps/pthread/aio_misc.h
@@ -51,7 +51,7 @@ struct waitlist
#endif
int *result;
- volatile int *counterp;
+ volatile unsigned int *counterp;
/* The next field is used in asynchronous `lio_listio' operations. */
struct sigevent *sigevp;
#ifdef BROKEN_THREAD_SIGNALS
diff --git a/sysdeps/pthread/aio_suspend.c b/sysdeps/pthread/aio_suspend.c
index 920f18a..641eafb 100644
--- a/sysdeps/pthread/aio_suspend.c
+++ b/sysdeps/pthread/aio_suspend.c
@@ -94,13 +94,13 @@ cleanup (void *arg)
#ifdef DONT_NEED_AIO_MISC_COND
static int
__attribute__ ((noinline))
-do_aio_misc_wait(int *cntr, const struct timespec *timeout)
+do_aio_misc_wait (unsigned int *cntr, const struct timespec *timeout)
{
- int result = 0;
+ int result = 0;
- AIO_MISC_WAIT(result, *cntr, timeout, 1);
+ AIO_MISC_WAIT (result, *cntr, timeout, 1);
- return result;
+ return result;
}
#endif
@@ -124,7 +124,7 @@ aio_suspend (list, nent, timeout)
int cnt;
bool any = false;
int result = 0;
- int cntr = 1;
+ unsigned int cntr = 1;
/* Request the mutex. */
pthread_mutex_lock (&__aio_requests_mutex);
@@ -180,7 +180,7 @@ aio_suspend (list, nent, timeout)
pthread_cleanup_push (cleanup, &clparam);
#ifdef DONT_NEED_AIO_MISC_COND
- result = do_aio_misc_wait(&cntr, timeout);
+ result = do_aio_misc_wait (&cntr, timeout);
#else
if (timeout == NULL)
result = pthread_cond_wait (&cond, &__aio_requests_mutex);
diff --git a/sysdeps/pthread/lio_listio.c b/sysdeps/pthread/lio_listio.c
index bfbf221..ac7ce40 100644
--- a/sysdeps/pthread/lio_listio.c
+++ b/sysdeps/pthread/lio_listio.c
@@ -35,7 +35,7 @@
/* We need this special structure to handle asynchronous I/O. */
struct async_waitlist
{
- int counter;
+ unsigned int counter;
struct sigevent sigev;
struct waitlist list[0];
};
@@ -61,7 +61,7 @@ lio_listio_internal (int mode, struct aiocb *const list[], int nent,
struct sigevent defsigev;
struct requestlist *requests[nent];
int cnt;
- volatile int total = 0;
+ volatile unsigned int total = 0;
int result = 0;
if (sig == NULL)
@@ -83,7 +83,7 @@ lio_listio_internal (int mode, struct aiocb *const list[], int nent,
requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
(list[cnt]->aio_lio_opcode
- | LIO_OPCODE_BASE));
+ | LIO_OPCODE_BASE));
if (requests[cnt] != NULL)
/* Successfully enqueued. */
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 11 +++++++++++
sysdeps/nptl/aio_misc.h | 4 ++--
sysdeps/pthread/aio_misc.h | 2 +-
sysdeps/pthread/aio_suspend.c | 12 ++++++------
sysdeps/pthread/lio_listio.c | 6 +++---
5 files changed, 23 insertions(+), 12 deletions(-)
hooks/post-receive
--
GNU C Library master sources