mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Fix nptl/tst-cancel17 and nptl/tst-cancelx17 with recent gcc.
This commit is contained in:
@ -6,6 +6,10 @@
|
|||||||
%sp not %fp in calculations.
|
%sp not %fp in calculations.
|
||||||
(_JMPBUF_UNWINDS_ADJ): Likewise.
|
(_JMPBUF_UNWINDS_ADJ): Likewise.
|
||||||
|
|
||||||
|
* sysdeps/pthread/aio_suspend.c (do_aio_misc_wait): New function.
|
||||||
|
(aio_suspend): Call it to force an exception region around the
|
||||||
|
AIO_MISC_WAIT() invocation.
|
||||||
|
|
||||||
2011-08-23 Andreas Schwab <schwab@redhat.com>
|
2011-08-23 Andreas Schwab <schwab@redhat.com>
|
||||||
|
|
||||||
* sysdeps/i386/i686/multiarch/strspn.S (ENTRY): Add missing
|
* sysdeps/i386/i686/multiarch/strspn.S (ENTRY): Add missing
|
||||||
|
@ -92,6 +92,18 @@ cleanup (void *arg)
|
|||||||
pthread_mutex_unlock (&__aio_requests_mutex);
|
pthread_mutex_unlock (&__aio_requests_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DONT_NEED_AIO_MISC_COND
|
||||||
|
static int
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_aio_misc_wait(int *cntr, const struct timespec *timeout)
|
||||||
|
{
|
||||||
|
int result = 0;
|
||||||
|
|
||||||
|
AIO_MISC_WAIT(result, *cntr, timeout, 1);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
aio_suspend (list, nent, timeout)
|
aio_suspend (list, nent, timeout)
|
||||||
@ -169,7 +181,7 @@ aio_suspend (list, nent, timeout)
|
|||||||
pthread_cleanup_push (cleanup, &clparam);
|
pthread_cleanup_push (cleanup, &clparam);
|
||||||
|
|
||||||
#ifdef DONT_NEED_AIO_MISC_COND
|
#ifdef DONT_NEED_AIO_MISC_COND
|
||||||
AIO_MISC_WAIT (result, cntr, timeout, 1);
|
result = do_aio_misc_wait(&cntr, timeout);
|
||||||
#else
|
#else
|
||||||
if (timeout == NULL)
|
if (timeout == NULL)
|
||||||
result = pthread_cond_wait (&cond, &__aio_requests_mutex);
|
result = pthread_cond_wait (&cond, &__aio_requests_mutex);
|
||||||
|
Reference in New Issue
Block a user