Fix SXEmacs semaphores so that they deal with spurius pthreads conditional variable wakeups
* src/semaphore.h (struct sxe_semaphore_s): add a generation count
* src/semaphore.h (struct sxe_msemaphore_s): ditto
* src/semaphore.h (sxe_msemaphore_init): initialize generation
* src/semaphore.h (sxe_semaphore_init): ditto
* src/semaphore.h (sxe_msemaphore_trigger): increment generation before signal
* src/semaphore.h (sxe_msemaphore_trigger): ditto
* src/semaphore.h (sxe_msemaphore_trigger_all): ditto
* src/semaphore.h (sxe_msemaphore_trigger_all): ditto
* src/semaphore.h (sxe_msemaphore_synchronise): Wait again if
generation is still the same (ie no signal occurred).
* src/semaphore.h (sxe_msemaphore_synchronise): ditto.
Signed-off-by: Nelson Ferreira <nelson.ferreira@ieee.org>