why so little usage of DEFINE_SEMAPHORE()?