semaphore/mutex headers don't screw it up
so much more
added missing (like anything's *not* missing)