While debugging my massively multithreaded C++ application I would notice times where the application would seem to pause for a few moments. During one of these pauses I halted the application and attached to it with the debugger (GDB). From within GDB I listed (info threads), switched to (thread <num>) and looked at the stack (bt) of each thread running.
I saw something surprising and very telling. Nearly every single thread that was supposed to be performing work was actually blocked on a mutex inside of either malloc or free.
Recent comments
5 hours 54 min ago
1 day 12 hours ago
2 days 18 hours ago
3 days 3 hours ago
1 week 5 days ago
2 weeks 2 days ago
2 weeks 4 days ago
3 weeks 1 day ago
3 weeks 1 day ago
3 weeks 3 days ago