correction
the same colleague i mentioned yesterday pointed out that the bug in semaphore::signal existed in the previous implementation. so it had literally been there for years. and i copy-pasted the bug without noticing it for the rewrite. well, actually i think i noticed it looked funny. but i failed to realize it was an error. so anywho, who da the pumpkinhead? yeah.