I have been working on this for several days -
As a background, I am working on a single-threaded C program and making it multithreaded. I recently discovered a new dead end case, but when I look at the mutex in gdb, I see that
__ lock = 2 more __owner = 0
This is not a recursive mutex. Has anyone seen this? The program I'm working on is a daemon, and this case only happens after executing with high throughput for more than 20 minutes (approximately), and then easing the load. If you have any ideas, I would be grateful.
Edit - I forgot to mention that all my other threads are currently inactive.
Greetings
dbeer source share