[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Newbie question on mutexes



Hi,

I am seeing a different behavior between Linuxthreads and NPTL when it comes to threads of different priorities waiting on a pthread_mutex. Here's what I do in my code:

1. create a pthread_mutex and lock it.
2. create a real time thread with policy SCHED_FIFO and priority 5. This thread tries to lock the same mutex and blocks.
3. create a second thread with policy SCHED_FIFO and priority 10. This thread tries to lock the same mutex and blocks.
4. then I unlock the mutex and check who got the lock.


When I run this with Linuxthreads, the higher priority thread gets the lock. When I use NPTL, the lower priority one gets it.

My test system is Fedora core 1, running 2.4.22-1.2166.nptl kernel on an x86 . I am using LD_ASSUME_KERNEL to switch between NPTL and Linuxthreads. I set it to 2.4.19 to go to Linuxthreads and unset it to go back to NPTL, which is the default. I also make sure the correct library is being used by doing an ldd on the program. NPTL devel library is nptl-devel-2.3.2-101.4. glibc is glibc-2.3.2-101.4

Can someone please let me know what I am doing wrong. I would have expected the higher priority thread to get the mutex, but don't see that behavior in NPTL.

Thanks,
Abhijeet




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]