bayeslite
bayeslite copied to clipboard
Python multiprocessing ignores ^C altogether
This means the bayeslite shell is not responsive to interruption during analysis and other Crosscat computations when you don't pass `-j 1'.
This is different from #25 because it is specifically about the multiprocessing module ignoring ^C so that nothing happens, not about data structures potentially getting corrupted on ^C.
Shell doesn't know enough to stop waiting for work queue when ^C happens. The right thing is to replace python multiprocessing with something more reasonable.
User experience impact, need to decide how much of a challenge for first public release.
Unlike #25, this issue is reasonable to fix, with a little work to rewrite multiprocessing (not trivial, but also not likely to be more than a couple days).
To elaborate, after @fsaad's disbelief across the room: this entails rewriting the work queue and process pool code, not actually rewriting primitives for forking or process-shared memory.