This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
The following program (extracted from mysql) hangs with nptl but not
with linuxthreads on x86-64.
#define _GNU_SOURCE
#include <pthread.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
pthread_rwlock_t LL;
int ret;
memset (&LL, 1, sizeof(LL));
ret = pthread_rwlock_init(&LL, NULL);
printf ("ret is: %d\n", ret);
ret = pthread_rwlock_rdlock(&LL);
printf ("ret is: %d\n", ret);
ret = pthread_rwlock_unlock(&LL);
printf ("ret is: %d\n", ret);
ret = pthread_rwlock_wrlock(&LL); /* hangs with nptl */
printf ("ret is: %d\n", ret);
return 0;
}
After the rwlock_unlock, we have:
(gdb) p LL
$7 = {__data = {__lock = 0, __nr_readers = 1, __readers_wakeup = 0,
__writer_wakeup = 0, __nr_readers_queued = 0, __nr_writers_queued = 0,
__writer = 0, __pad1 = 0, __pad2 = 18446744073709551615,
__pad3 = 18446744073709551615, __flags = 0},
__size = "\000\000\000\000\001", '\0' <repeats 27 times>, 'ÿ' <repeats 16 times>, "\000\000\000\000ÿÿÿÿ", __align = 4294967296}
and then the pthread_rwlock_wrlock hangs...
Any ideas what's wrong here?
Andreas
--
Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
SuSE Linux AG, Maxfeldstr. 5, 90409 Nürnberg, Germany
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
Attachment:
pgp00000.pgp
Description: PGP signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |