I was running tests for concurrency, which stresses the system and suddenly PrimProc crashed. I tried again with PrimProc running in GDB. This pointed to a bad pointer. It appears that jobs are getting backed up in the Priority ThreadPool (they get queued if no threads available), and while they're waiting, objects upon which these jobs rely are going out of scope and being destroyed. I believe this can be fixed with a judicious application of shared_ptr.