diff options
| author | Michał Cichoń <michcic@gmail.com> | 2015-08-25 19:56:24 +0200 | 
|---|---|---|
| committer | Michał Cichoń <michcic@gmail.com> | 2015-08-25 19:56:24 +0200 | 
| commit | 682f23e7bb4a52bedf46eff5c4859e1308eda124 (patch) | |
| tree | 30ad4f37b434ecdfb5edc36dfbaf7fc924e53c0e /pthreads/src/pthread_rwlock_trywrlock.c | |
| parent | 8b41fc907bcd27d24c895062ae8a61b305fc2d46 (diff) | |
| download | pianobar-windows-build-682f23e7bb4a52bedf46eff5c4859e1308eda124.tar.gz pianobar-windows-build-682f23e7bb4a52bedf46eff5c4859e1308eda124.tar.bz2 pianobar-windows-build-682f23e7bb4a52bedf46eff5c4859e1308eda124.zip  | |
Update build ref
Diffstat (limited to 'pthreads/src/pthread_rwlock_trywrlock.c')
| -rw-r--r-- | pthreads/src/pthread_rwlock_trywrlock.c | 122 | 
1 files changed, 0 insertions, 122 deletions
diff --git a/pthreads/src/pthread_rwlock_trywrlock.c b/pthreads/src/pthread_rwlock_trywrlock.c deleted file mode 100644 index 9997c5d..0000000 --- a/pthreads/src/pthread_rwlock_trywrlock.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * pthread_rwlock_trywrlock.c - * - * Description: - * This translation unit implements read/write lock primitives. - * - * -------------------------------------------------------------------------- - * - *      Pthreads-win32 - POSIX Threads Library for Win32 - *      Copyright(C) 1998 John E. Bossom - *      Copyright(C) 1999,2005 Pthreads-win32 contributors - *  - *      Contact Email: rpj@callisto.canberra.edu.au - *  - *      The current list of contributors is contained - *      in the file CONTRIBUTORS included with the source - *      code distribution. The list can also be seen at the - *      following World Wide Web location: - *      http://sources.redhat.com/pthreads-win32/contributors.html - *  - *      This library is free software; you can redistribute it and/or - *      modify it under the terms of the GNU Lesser General Public - *      License as published by the Free Software Foundation; either - *      version 2 of the License, or (at your option) any later version. - *  - *      This library is distributed in the hope that it will be useful, - *      but WITHOUT ANY WARRANTY; without even the implied warranty of - *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - *      Lesser General Public License for more details. - *  - *      You should have received a copy of the GNU Lesser General Public - *      License along with this library in the file COPYING.LIB; - *      if not, write to the Free Software Foundation, Inc., - *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - -#include <limits.h> - -#include "pthread.h" -#include "implement.h" - -int -pthread_rwlock_trywrlock (pthread_rwlock_t * rwlock) -{ -  int result, result1; -  pthread_rwlock_t rwl; - -  if (rwlock == NULL || *rwlock == NULL) -    { -      return EINVAL; -    } - -  /* -   * We do a quick check to see if we need to do more work -   * to initialise a static rwlock. We check -   * again inside the guarded section of ptw32_rwlock_check_need_init() -   * to avoid race conditions. -   */ -  if (*rwlock == PTHREAD_RWLOCK_INITIALIZER) -    { -      result = ptw32_rwlock_check_need_init (rwlock); - -      if (result != 0 && result != EBUSY) -	{ -	  return result; -	} -    } - -  rwl = *rwlock; - -  if (rwl->nMagic != PTW32_RWLOCK_MAGIC) -    { -      return EINVAL; -    } - -  if ((result = pthread_mutex_trylock (&(rwl->mtxExclusiveAccess))) != 0) -    { -      return result; -    } - -  if ((result = -       pthread_mutex_trylock (&(rwl->mtxSharedAccessCompleted))) != 0) -    { -      result1 = pthread_mutex_unlock (&(rwl->mtxExclusiveAccess)); -      return ((result1 != 0) ? result1 : result); -    } - -  if (rwl->nExclusiveAccessCount == 0) -    { -      if (rwl->nCompletedSharedAccessCount > 0) -	{ -	  rwl->nSharedAccessCount -= rwl->nCompletedSharedAccessCount; -	  rwl->nCompletedSharedAccessCount = 0; -	} - -      if (rwl->nSharedAccessCount > 0) -	{ -	  if ((result = -	       pthread_mutex_unlock (&(rwl->mtxSharedAccessCompleted))) != 0) -	    { -	      (void) pthread_mutex_unlock (&(rwl->mtxExclusiveAccess)); -	      return result; -	    } - -	  if ((result = -	       pthread_mutex_unlock (&(rwl->mtxExclusiveAccess))) == 0) -	    { -	      result = EBUSY; -	    } -	} -      else -	{ -	  rwl->nExclusiveAccessCount = 1; -	} -    } -  else -    { -      result = EBUSY; -    } - -  return result; -}  | 
