I'm going for minimalism in this patch.  I agree that we could (and should) go through and improve blocking at the very least, and maybe ozten's ideas about pre-calculating checksums and filewatching could be useful too (though I'm worried about the complexity of that - specifically that we'd be doing a lot of epolling that we'd need to clean up for the process to shutdown cleanly)