compiler respects 'keep_going' flag

I am creating this PR as a base for further discussion.

I found that this change works fine for me, but I don't know if the fact that the worker pid is not removed has any bad effects. 
It looks like this entire file is indented with tabs? I think that's against what we usually do, but I can re-edit it when merging if you want.