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
21 hours 15 min ago
1 day 6 hours ago
1 week 3 days ago
2 weeks 10 hours ago
2 weeks 2 days ago
2 weeks 6 days ago
2 weeks 6 days ago
3 weeks 1 day ago
3 weeks 6 days ago
3 weeks 6 days ago