Оказывается, реализация libpthread в NetBSD достаточно странно реагирует на некритические ошибки в работе библиотеки. Допустим, когда разблокируется незаблокированный мьютекс или же разблокируется не мьютекс, а мусор, libpthread зовет по умолчанию abort. Имхо, в release такого быть все же не должно. Ну, наткнулась на ошибку -- возврати -1 или еще
(
Read more... )
Comments 9
Reply
Reply
Reply
Reply
FreeBSD 5.3 + kse == EPERM
FreeBSD 5.2.1 + c_r == EINVAL
Linux on PA-RISC == 0
Tru64 Unix 5.1 == 0
NetBSD 1.6.2 + gnu pthreads == EDEADLK
Осталось добраться до Москвы и прогнать этот тест на интересующей меня NetBSD 2.99.11 + native threads. Что, впрочем, произойдет уже завтра.
Reply
thread-test: Error detected by libpthread: Unlocking unlocked mutex.
Detected by file "/usr/src/lib/libpthread/pthread_mutex.c", line 345, function "pthread_mutex_unlock".
See pthread(3) for information.
Abort trap (core dumped)
(gdb) bt
#0 0x4808d2c3 in kill () from /usr/lib/libc.so.12
#1 0x4806b951 in pthread__errorfunc () from /usr/lib/libpthread.so.0
#2 0x48068b3f in pthread_mutex_unlock () from /usr/lib/libpthread.so.0
#3 0x080487d5 in main ()
#4 0x080485e6 in ___start ()
$ uname -v
NetBSD 2.99.11
Вот так.
Reply
Leave a comment