actually, sem_post is not specified as being async-canel-safe either, but it's required to be async-signal-safe, and if it did anything unsafe after upping the semaphore value, there's no way it could be async-signal-safe...
actually either is correct linguistically, but for the constant it must have just a single L