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. 
ping?