From 11629685f117ef39ec7b0006160ce38042246159 Mon Sep 17 00:00:00 2001 From: Jon TURNEY Date: Tue, 19 Apr 2011 18:51:20 +0000 Subject: 2011-04-02 Jon TURNEY * thread.cc (semaphore::init): We cannot reliably infer anything from the existing contents of sem, so merely warn rather than return EBUSY if it looks like we are reinitialising a semaphore. --- winsup/cygwin/thread.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'winsup/cygwin/thread.cc') diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 87167b7f9..2bd50658c 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -3209,11 +3209,14 @@ semaphore::_terminate () int semaphore::init (sem_t *sem, int pshared, unsigned int value) { - /* opengroup calls this undefined */ + /* + We can't tell the difference between reinitialising an + existing semaphore and initialising a semaphore who's + contents happen to be a valid pointer + */ if (is_good_object (sem)) { - set_errno(EBUSY); - return -1; + paranoid_printf ("potential attempt to reinitialise a semaphore"); } if (value > SEM_VALUE_MAX) -- cgit v1.2.3