From ff6e295ebf83b89fdcedce78362fd2d9e20e3c95 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 12 Sep 2001 04:47:47 +0000 Subject: [PATCH] minor cleanups --- winsup/cygwin/ChangeLog | 23 +++++++++++++---------- winsup/cygwin/thread.cc | 33 +++++++++++++++++---------------- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 538803b84..abaf88903 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,6 +1,7 @@ Wed Sep 12 13:03:00 2001 Robert Collins - * autoload.cc (LoadDLLfuncEx): Auto load TryEnterCriticalSection - its an NT only call. + * autoload.cc (LoadDLLfuncEx): Auto load TryEnterCriticalSection - it's + an NT only call. * thread.cc (pthread_cond::TimedWait): Use critical sections for NT. (pthread_cond::fixup_after_fork): Don't detect bad apps. (pthread_mutex::pthread_mutex): Use critical sections for NT. @@ -8,9 +9,11 @@ Wed Sep 12 13:03:00 2001 Robert Collins (pthread_mutex::Lock): Ditto. (pthread_mutex::TryLock): Ditto. (pthread_mutex::UnLock): Ditto. - (pthread_mutex::fixup_after_fork): Ditto. Also do not detect bad apps. - (__pthread_mutex_trylock): Move WIN32 specific test into the class method. - (__pthread_mutex_destroy): Prevent dereferencing passed pointer without valid address. + (pthread_mutex::fixup_after_fork): Ditto. Also do not detect bad apps. + (__pthread_mutex_trylock): Move WIN32 specific test into the class + method. + (__pthread_mutex_destroy): Prevent dereferencing passed pointer without + valid address. * thread.h (pthread_mutex): Use critical sections for NT. Tue Sep 11 21:55:37 2001 Christopher Faylor @@ -77,11 +80,11 @@ Sun Sep 9 20:09:11 2001 Christopher Faylor Mon Sep 10 08:28:00 2001 Robert Collins - * thread.h (MT_Interface): Remove pshared mutex array. - Add a threadsafe list for mutex tracking (for fixup after fork). + * thread.h (MT_Interface): Remove pshared mutex array. Add a + threadsafe list for mutex tracking (for fixup after fork). * thread.cc (MTInterface::Init): Remove pshared mutex array. - (pthread_mutex::pthread_mutex): Remove pshared mutex functionality. - Fail with EINVAL on attempts to use pshared functionality. + (pthread_mutex::pthread_mutex): Remove pshared mutex functionality. + Fail with EINVAL on attempts to use pshared functionality. (__pthread_mutex_getpshared): Remove. (__pthread_cond_timedwait): Remove pshared mutex functionality. (__pthread_cond_wait): Ditto. @@ -93,8 +96,8 @@ Mon Sep 10 08:28:00 2001 Robert Collins (__pthread_mutex_destroy): Ditto. (__pthread_mutex_setprioceiling): Ditto. (__pthread_mutexattr_setpshared): Ditto. - -Sun Sep 9 23:09:00 2001 Corinna Vinschen + +Sun Sep 9 23:09:00 2001 Corinna Vinschen * pwdgrp.h (pwdgrp_check::set_last_modified): Call GetFileTime() instead of GetFileInformationByHandle(). diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index d3a26de71..241f734cd 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -3,6 +3,7 @@ Copyright 1998, 1999, 2000, 2001 Red Hat, Inc. Originally written by Marco Fuykschot + Substantialy enhanced by Robert Collins < This file is part of Cygwin. @@ -10,19 +11,19 @@ This software is a copyrighted work licensed under the terms of the Cygwin license. Please consult the file "CYGWIN_LICENSE" for details. */ -/*Implementation overview and caveats: +/* Implementation overview and caveats: - Win32 puts some contraints on what can and cannot be implemented. Where possible - we work around those contrainsts. Where we cannot work around the constraints we - either pretend to be conformant, or return an error code. + Win32 puts some contraints on what can and cannot be implemented. Where + possible we work around those contrainsts. Where we cannot work around + the constraints we either pretend to be conformant, or return an error + code. - Some caveats: PROCESS_SHARED objects while they pretend to be process shared, - may not actually work. Some test cases are needed to determine win32's behaviour. - My suspicion is that the win32 handle needs to be opened with different flags for - proper operation. + Some caveats: PROCESS_SHARED objects while they pretend to be process + shared, may not actually work. Some test cases are needed to determine + win32's behaviour. My suspicion is that the win32 handle needs to be + opened with different flags for proper operation. - R.Collins, April 2001. - */ + R.Collins, April 2001. */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -449,7 +450,7 @@ pthread_cond::~pthread_cond () { pthread_cond *tempcond = MT_INTERFACE->conds; while (tempcond->next && tempcond->next != this) - tempcond = tempcond->next; + tempcond = tempcond->next; /* but there may be a race between the loop above and this statement */ InterlockedExchangePointer (&tempcond->next, this->next); } @@ -514,7 +515,7 @@ pthread_cond::TimedWait (DWORD dwMilliseconds) * critical sections, which are faster, but introduce a race _here_. Until then * The NT variant of the code is redundant. */ - + rv = SignalObjectAndWait (mutex->win32_obj_id, win32_obj_id, dwMilliseconds, false); #endif @@ -626,7 +627,7 @@ pthread_mutex::pthread_mutex (pthread_mutexattr *attr):verifyable_object (PTHREA { this->win32_obj_id =::CreateMutex (&sec_none_nih, false, NULL); if (!win32_obj_id) - magic = 0; + magic = 0; } condwaits = 0; pshared = PTHREAD_PROCESS_PRIVATE; @@ -641,7 +642,7 @@ pthread_mutex::~pthread_mutex () else { if (win32_obj_id) - CloseHandle (win32_obj_id); + CloseHandle (win32_obj_id); win32_obj_id = NULL; } /* I'm not 100% sure the next bit is threadsafe. I think it is... */ @@ -704,7 +705,7 @@ pthread_mutex::fixup_after_fork () { win32_obj_id =::CreateMutex (&sec_none_nih, false, NULL); if (!win32_obj_id) - api_fatal("pthread_mutex::fixup_after_fork() failed to create new win32 mutex\n"); + api_fatal("pthread_mutex::fixup_after_fork() failed to create new win32 mutex\n"); } #if DETECT_BAD_APPS if (condwaits) @@ -746,7 +747,7 @@ semaphore::~semaphore () { semaphore *tempsem = MT_INTERFACE->semaphores; while (tempsem->next && tempsem->next != this) - tempsem = tempsem->next; + tempsem = tempsem->next; /* but there may be a race between the loop above and this statement */ InterlockedExchangePointer (&tempsem->next, this->next); }