From b29903300adc22ed277bbaa356aca8ed0c245957 Mon Sep 17 00:00:00 2001 From: rpj Date: Fri, 8 Feb 2002 01:51:17 +0000 Subject: Copyright notice updates; module splitting; POSIX version conditional compilation; refinements; bug fixes. See the ChangeLog. --- ChangeLog | 378 ++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 217 insertions(+), 161 deletions(-) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 1295213..8c7c0da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,112 @@ -2002-02-02 Ross Johnson +2002-02-07 Alexander Terekhov - Contributed by - Alexander Terekhov - * nonportable.c (pthread_delay_np): Make a true cancelation point. Deferred cancels will interrupt the wait. + +2002-02-07 Ross Johnson + + Reduced name space pollution. + ----------------------------- + When the appropriate symbols are defined, the headers + will restrict the definitions of new names. In particular, + it must be possible to NOT include the + header and related definitions with some combination + of symbol definitions. Secondly, it should be possible + that additional definitions should be limited to POSIX + compliant symbols by the definition of appropriate symbols. + + * pthread.h: POSIX conditionals. + * sched.h: POSIX conditionals. + * semaphore.h: POSIX conditionals. + + * semaphore.c: Included . + (sem_init): Changed magic 0x7FFFFFFFL to INT_MAX. + (sem_getvalue): Trial version. + + Reduce executable size. + ----------------------- + When linking with the static library, only those + routines actually called, either directly or indirectly + should be included. + + [Gcc has the -ffunction-segments option to do this but MSVC + doesn't have this feature as far as I can determine. Other + compilers are undetermined as well. - rpj] + + * semaphore.c: All routines are now in separate compilation units; + This file is used to congregate the separate modules for + potential inline optimisation and backward build compatibility. + * semaphore_close.c: Separated routine from semaphore.c. + * semaphore_decrease.c: Likewise. + * semaphore_destroy.c: Likewise. + * semaphore_getvalue.c: Likewise. + * semaphore_increase.c: Likewise. + * semaphore_init.c: Likewise. + * semaphore_open.c: Likewise. + * semaphore_post.c: Likewise. + * semaphore_postmultiple.c: Likewise. + * semaphore_timedwait.c: Likewise. + * semaphore_trywait.c: Likewise. + * semaphore_unlink.c: Likewise. + * semaphore_wait.c: Likewise. + +2002-02-04 Ross Johnson + + The following extends the idea above to the rest of pthreads-win32 - rpj + * attr.c: All routines are now in separate compilation units; + This file is used to congregate the separate modules for + potential inline optimisation and backward build compatibility. + * attr_destroy.c: Separated routine from attr.c. + * attr_getdetachstate.c: Likewise. + * attr_getscope.c: Likewise. + * attr_getstackaddr.c: Likewise. + * attr_getstacksize.c: Likewise. + * attr_init.c: Likewise. + * attr_is_attr.c: Likewise. + * attr_setdetachstate.c: Likewise. + * attr_setscope.c: Likewise. + * attr_setstackaddr.c: Likewise. + * attr_setstacksize.c: Likewise. + + * pthread.c: Agregation of agregate modules for super-inlineability. + 2002-02-02 Ross Johnson * cancel.c: Rearranged some code and introduced checks @@ -114,10 +215,7 @@ OS version of InterlockedCompareExchange() if the OS supports it (see ChangeLog entry of 2001-10-17). -2002-01-07 Ross Johnson - - Contributed by - Thomas Pfaff - Alexander Terekhov +2002-01-07 Thomas Pfaff , Alexander Terekhov * mutex.c (pthread_mutex_init): Remove critical section calls. @@ -144,17 +242,13 @@ * ANNOUNCE: Fix out of date comment next to pthread_attr_setscope in conformance section. -2001-12-21 Ross Johnson +2001-12-21 Alexander Terekhov - Contributed by - Alexander Terekhov - * mutex.c (pthread_mutex_lock): Decrementing lock_idx was not thread-safe. (pthread_mutex_trylock): Likewise. -2001-10-26 Ross Johnson - - Reported by - prionx@juno.com +2001-10-26 prionx@juno.com * semaphore.c (sem_init): Fix typo and missing bracket in conditionally compiled code. Only older versions of @@ -240,9 +334,7 @@ that is no longer used. * implement.h: Likewise. -2001-08-23 Ross Johnson - - Contributed by - "Alexander Terekhov" +2001-08-23 Alexander Terekhov * condvar.c (pthread_cond_destroy): fix bug with respect to deadlock in the case of concurrent @@ -250,14 +342,12 @@ immediately after all the threads that are blocked on it are awakened. - Contributed by - "Phil Frisbie, Jr." +2001-08-23 Phil Frisbie, Jr. * tsd.c (pthread_getspecific): Preserve the last winsock error [from WSAGetLastError()]. -2001-07-18 Ross Johnson - - Contributed by - "Scott McCaskill" +2001-07-18 Scott McCaskill * mutex.c (pthread_mutexattr_init): Return ENOMEM immediately and don't dereference the NULL pointer @@ -363,9 +453,7 @@ * pthread.h (_POSIX_READER_WRITER_LOCKS): Define it if not already defined. -2001-07-01 Ross Johnson - - Contributed by - Alexander Terekhov. +2001-07-01 Alexander Terekhov * condvar.c: Fixed lost signal bug reported by Timur Aydin (taydin@snet.net). @@ -431,9 +519,7 @@ * pthread.def (sched_setscheduler): Exported. (sched_getscheduler): Likewise. -2001-06-23 Ross Johnson - - Contributed by - Ralf Brese +2001-06-23 Ralf Brese * create.c (pthread_create): Set thread priority from thread attributes. @@ -452,9 +538,7 @@ * private.c (pthread_count): Likewise. * exit.c (pthread_count): Likewise. -2001-06-18 Ross Johnson - - Contributed by - David Korn +2001-06-18 David Korn * dll.c: Added changes necessary to work with UWIN. * create.c: Likewise. @@ -526,10 +610,7 @@ developed by Terekhov and Thomas, plus reference to README.CV. -2001-06-03 Ross Johnson - - Contributed by - Alexander Terekhov - - Louis Thomas +2001-06-03 Alexander Terekhov , Louis Thomas * condvar.c (pthread_cond_init): Completely revamped. (pthread_cond_destroy): Likewise. @@ -550,9 +631,7 @@ and increase optimisation level - for smaller faster prebuilt dlls. -2001-05-29 Ross Johnson - - Contributed by - Milan Gardian +2001-05-29 Milan Gardian * Makefile: fix typo. * pthreads.h: Fix problems with stdcall/cdecl conventions, in particular @@ -569,9 +648,7 @@ * Remove unnecessary #includes from a number of modules - [I had to #include malloc.h in implement.h for gcc - rpj]. -2001-05-29 Ross Johnson - - Contributed by - Thomas Pfaff +2001-05-29 Thomas Pfaff * pthread.h (PTHREAD_MUTEX_DEFAULT): New; equivalent to PTHREAD_MUTEX_DEFAULT_NP. @@ -608,10 +685,8 @@ * Also fixed some of the same typos and eliminated PT_STDCALL as Milan Gardian's patches above. -2001-02-07 Ross Johnson +2001-02-07 Alexander Terekhov - Contributed by - Alexander Terekhov - * rwlock.c: Revamped. * implement.h (pthread_rwlock_t_): Redefined. This implementation does not have reader/writer starvation problem. @@ -705,14 +780,13 @@ * FAQ: Update Answer 6 re getting a fully working Mingw32 built library. -2000-10-10 Ross Johnson +2000-10-10 Steven Reddie * misc.c (pthread_self): Restore Win32 "last error" cleared by TlsGetValue() call in pthread_getspecific() - - "Steven Reddie" -2000-09-20 Ross Johnson +2000-09-20 Arthur Kantor * mutex.c (pthread_mutex_lock): Record the owner of the mutex. This requires also keeping count of @@ -726,16 +800,14 @@ EPERM if the mutex is owned by another thread. * implement.h (pthread_mutex_t_): Add ownerThread and lockCount members. - - reported by Arthur Kantor -2000-09-13 Ross Johnson +2000-09-13 Jef Gearhart * mutex.c (pthread_mutex_init): Call TryEnterCriticalSection through the pointer rather than directly so that the dll can load on Windows versions that can't resolve the function, eg. Windows 95 - - "Jef Gearhart" 2000-09-09 Ross Johnson @@ -999,12 +1071,13 @@ * sync.c (pthread_join): Remove dead code. -2000-07-25 Ross Johnson +2000-07-25 Tristan Savatier * sched.c (sched_get_priority_max): Handle different WinCE and Win32 priority values together. (sched_get_priority_min): Ditto. - - Tristan Savatier + +2000-07-25 Ross Johnson * create.c (pthread_create): Force new threads to wait until pthread_create has the new thread's handle; we also retain @@ -1060,6 +1133,12 @@ * FAQ: Added Q5 and Q6. +2000-07-21 David Baggett + + * dll.c: Include resource leakage work-around. This is a + partial FIXME which doesn't stop all leakage. The real + problem needs to be found and fixed. + 2000-07-21 Ross Johnson * create.c (pthread_create): Set threadH to 0 (zero) @@ -1068,11 +1147,6 @@ they are nearly always the same thing - but not by definition.) - * dll.c: Include resource leakage work-around. This is a - partial FIXME which doesn't stop all leakage. The real - problem needs to be found and fixed. - - "David Baggett" - * misc.c (pthread_self): Try to catch NULL thread handles at the point where they might be generated, even though they should always be valid at this point. @@ -1118,10 +1192,9 @@ (ptw32_cancel_self): Include SEH code only if MSC is not compiling as C++. -2000-01-06 Ross Johnson +2000-01-06 Erik Hensema * Makefile: Remove inconsistencies in 'cl' args - - Erik Hensema 2000-01-04 Ross Johnson @@ -1176,6 +1249,8 @@ (struct pthread_t_): Add cancelLock mutex for async cancel safety. +1999-11-21 Jason Nye , Erik Hensema + * cancel.c (ptw32_cancel_self): New; part of the async cancellation implementation. (ptw32_cancel_thread): Ditto; this function is X86 @@ -1184,21 +1259,19 @@ cancel request and cancel the calling thread if required; add async-cancel safety lock. (pthread_setcanceltype): Ditto. - - Jason Nye - - Erik Hensema -1999-11-13 Ross Johnson +1999-11-13 Erik Hensema * configure.in (AC_OUTPUT): Put generated output into GNUmakefile rather than Makefile. Makefile will become the MSC nmake compatible version - - Erik Hensema + +1999-11-13 John Bossom (John.Bossom@cognos.com> * misc.c (pthread_self): Add a note about GetCurrentThread returning a pseudo-handle - - John Bossom (John.Bossom@cognos.com> -1999-11-10 Ross Johnson +1999-11-10 Todd Owen * dll.c (dllMain): Free kernel32 ASAP. If TryEnterCriticalSection is not being used, then free @@ -1213,14 +1286,15 @@ Since w95 just happens to be a platform which does not provide TryEnterCriticalSection, the bug will be effortlessly avoided. - - Todd Owen + +1999-11-10 Ross Johnson * sync.c (pthread_join): Make it a deferred cancelation point. * misc.c (pthread_self): Explicitly initialise implicitly created thread state to default values. -1999-11-05 Ross Johnson +1999-11-05 Tristan Savatier * pthread.h (winsock.h): Include unconditionally. (ETIMEDOUT): Change fallback value to that defined by winsock.h. @@ -1228,9 +1302,8 @@ * general: Patched for portability to WinCE. The details are described in the file WinCE-PORT. Follow the instructions in README.WinCE to make the appropriate changes in config.h. - - Tristan Savatier -1999-10-30 Ross Johnson +1999-10-30 Erik Hensema * create.c (pthread_create): Explicitly initialise thread state to default values. @@ -1238,19 +1311,16 @@ * cancel.c (pthread_setcancelstate): Check for NULL 'oldstate' for compatibility with Solaris pthreads; (pthread_setcanceltype): ditto: - - Erik Hensema -1999-10-23 Ross Johnson +1999-10-23 Erik Hensema * pthread.h (ctime_r): Fix incorrect argument "_tm" - - Erik Hensema -1999-10-21 Ross Johnson +1999-10-21 Aurelio Medina * pthread.h (_POSIX_THREADS): Only define it if it isn't already defined. Projects may need to define this on the CC command line under Win32 as it doesn't have unistd.h - - Aurelio Medina 1999-10-17 Ross Johnson @@ -1260,7 +1330,7 @@ * condvar.c (pthread_cond_broadcast): Only release semaphores if there are waiting threads. -1999-10-15 Ross Johnson +1999-10-15 Lorin Hochstein , Peter Slacik * condvar.c (cond_wait_cleanup): New static cleanup handler for cond_timedwait; @@ -1268,10 +1338,11 @@ canceling a thread while it's in pthread_cond_wait will now decrement the waiters count and cleanup if it's the last waiter. - - Lorin Hochstein and - Peter Slacik ; - the last waiter will now reset the CV's wasBroadcast flag - - Graham Dumpleton . + +1999-10-15 Graham Dumpleton + + * condvar.c (cond_wait_cleanup): the last waiter will now reset the CV's + wasBroadcast flag Thu Sep 16 1999 Ross Johnson @@ -1288,10 +1359,7 @@ Thu Sep 16 1999 Ross Johnson * mutex.c: Modify comments. * condvar.c: Modify comments. -Sat Sep 10 12:56:13 1999 Ross Johnson - - The following code for POSIX read/write locks was contributed - by Aurelio Medina. +1999-08-10 Aurelio Medina * implement.h (pthread_rwlock_t_): Add. * pthread.h (pthread_rwlock_t): Add. @@ -1307,10 +1375,9 @@ Sat Sep 10 12:56:13 1999 Ross Johnson if mutex is PTHREAD_MUTEX_INITIALIZER and has not been initialised yet. -Wed Sep 8 12:56:13 1999 Ross Johnson +1999-08-08 Milan Gardian * mutex.c (pthread_mutex_destroy): Free mutex memory. - - Milan Gardian 1999-08-22 Ross Johnson @@ -1329,17 +1396,14 @@ Wed Sep 8 12:56:13 1999 Ross Johnson the application thread startup routine. - Milan Gardian -1999-08-18 Ross Johnson +1999-08-18 John Bossom * exit.c (pthread_exit): Put status into pthread_t->exitStatus - - John Bossom * private.c (ptw32_threadStart): Set pthread->exitStatus on exit of try{} block. - - John Bossom * sync.c (pthread_join): use pthread_exitStatus value if the thread exit doesn't return a value (for Mingw32 CRTDLL which uses endthread instead of _endthreadex). - - John Bossom Tue Aug 17 20:17:58 CDT 1999 Mumit Khan @@ -1374,19 +1438,14 @@ Tue Aug 17 20:00:08 1999 Mumit Khan * exit.c (pthread_exit): Check for implicitly created threads to avoid raising an unhandled exception. -1999-07-12 Ross Johnson +1999-07-12 Peter Slacik * condvar.c (pthread_cond_destroy): Add critical section. (cond_timedwait): Add critical section; check for timeout waiting on semaphore. (pthread_cond_broadcast): Add critical section. - - Peter Slacik -1999-07-09 Ross Johnson - - The following changes fix a bug identified by - Lorin Hochstein and solved by - John Bossom . +1999-07-09 Lorin Hochstein , John Bossom The problem was that cleanup handlers were not executed when pthread_exit() was called. @@ -1395,6 +1454,7 @@ Tue Aug 17 20:00:08 1999 Mumit Khan C++ per-thread exception information. (general): Define and rename exceptions. +1999-07-09 Ross Johnson * misc.c (CancelableWait): PTW32_EPS_CANCEL (SEH) and ptw32_exception_cancel (C++) used to identify the exception. @@ -1413,22 +1473,21 @@ Sun May 30 00:25:02 1999 Ross Johnson * semaphore.h (mode_t): Conditionally typedef it. -Fri May 28 13:33:05 1999 Ross Johnson +Fri May 28 13:33:05 1999 Mark E. Armstrong * condvar.c (pthread_cond_broadcast): Fix possible memory fault - - Mark E. Armstrong -Thu May 27 13:08:46 1999 Ross Johnson +Thu May 27 13:08:46 1999 Peter Slacik * condvar.c (pthread_cond_broadcast): Fix logic bug - - Peter Slacik ; - optimise sem_post loop - - Bossom, John . -Fri May 14 12:13:18 1999 Ross Johnson +Thu May 27 13:08:46 1999 Bossom, John + + * condvar.c (pthread_cond_broadcast): optimise sem_post loop + +Fri May 14 12:13:18 1999 Mike Russo * attr.c (pthread_attr_setdetachstate): Fix logic bug - - Mike Russo . Sat May 8 09:42:30 1999 Ross Johnson @@ -1490,41 +1549,37 @@ Fri Apr 2 11:08:50 1999 Ross Johnson * semaphore.h: New file for POSIX 1b semaphores. - * pthread.h (ptw32_sem_t): Change to sem_t. + * semaphore.c (ptw32_sem_timedwait): Moved to private.c. - * semaphore.c (ptw32_sem_*): Change to sem_*; these functions - will be exported from the library; set errno on error. - - John Bossom - (ptw32_sem_timedwait): Moved to private.c. + * pthread.h (ptw32_sem_t): Change to sem_t. * private.c (ptw32_sem_timedwait): Moved from semaphore.c; set errno on error. - * errno.c (_errno): New file. New function. - - John Bossom - * pthread.h (pthread_t_): Add per-thread errno element. -Fri Mar 26 14:11:45 1999 Ross Johnson +Fri Apr 2 11:08:50 1999 John Bossom + + * semaphore.c (ptw32_sem_*): Change to sem_*; these functions + will be exported from the library; set errno on error. + + * errno.c (_errno): New file. New function. + +Fri Mar 26 14:11:45 1999 Tor Lillqvist * semaphore.c (ptw32_sem_timedwait): Check for negative milliseconds. - - Tor Lillqvist -Wed Mar 24 11:32:07 1999 Ross Johnson +Wed Mar 24 11:32:07 1999 John Bossom * misc.c (CancelableWait): Initialise exceptionInformation[2]. (pthread_self): Get a real Win32 thread handle for implicit threads. - - John Bossom * cancel.c (pthread_testcancel): Initialise exceptionInformation[2]. - - John Bossom * implement.h (SE_INFORMATION): Fix values. - - John Bossom * private.c (ptw32_threadDestroy): Close the thread handle. - - John Bossom Fri Mar 19 12:57:27 1999 Ross Johnson @@ -1860,11 +1915,12 @@ Tue Jan 19 18:27:42 1999 Ross Johnson (pthreadCancelableTimedWait): Just calls CancelableWait() with passed in timeout. +Tue Jan 19 18:27:42 1999 Scott Lightner + * private.c (ptw32_sem_timedwait): 'abstime' arg really is absolute time. Calculate relative time to wait from current time before passing timeout to new routine pthreadCancelableTimedWait(). - - Scott Lightner Tue Jan 19 10:27:39 1999 Ross Johnson @@ -1998,31 +2054,29 @@ Wed Jan 13 09:34:52 1999 Ross Johnson * build.bat: Delete old binaries before compiling/linking. -Tue Jan 12 09:58:38 1999 Ross Johnson +Tue Jan 12 09:58:38 1999 Tor Lillqvist * dll.c: The Microsoft compiler pragmas probably are more appropriately protected by _MSC_VER than by _WIN32. - - Tor Lillqvist . - - * condvar.c (pthread_cond_timedwait): Fix function description - comments. * pthread.h: Define ETIMEDOUT. This should be returned by pthread_cond_timedwait which is not implemented yet as of snapshot-1999-01-04-1305. It was implemented in the older version. The Microsoft compiler pragmas probably are more appropriately protected by _MSC_VER than by _WIN32. - - Tor Lillqvist . * pthread.def: pthread_mutex_destroy was missing from the def file - - Tor Lillqvist . * condvar.c (pthread_cond_broadcast): Ensure we only wait on threads if there were any waiting on the condition. I think pthread_cond_broadcast should do the WaitForSingleObject only if cv->waiters > 0? Otherwise it seems to hang, at least in the testg thread program from glib. - - Tor Lillqvist . + +Tue Jan 12 09:58:38 1999 Ross Johnson + + * condvar.c (pthread_cond_timedwait): Fix function description + comments. * semaphore.c (sem_post): Correct typo in comment. @@ -2034,11 +2088,10 @@ Mon Jan 11 20:33:19 1999 Ross Johnson * cleanup.c (ptw32_push_cleanup): Provide conditional compile of cleanup->prev. -1999-01-11 Ben Elliston +1999-01-11 Tor Lillqvist * condvar.c (pthread_cond_init): Invert logic when testing the return value from calloc(). - - Tor Lillqvist . Sat Jan 9 14:32:08 1999 Ross Johnson @@ -2116,26 +2169,30 @@ Tue Dec 29 13:11:16 1998 Ross Johnson * attr.c: Rename "detachedstate" to "detachstate". -Mon Dec 28 09:54:39 1998 Ross Johnson +Mon Dec 28 09:54:39 1998 John Bossom - * semaphore.c: Initial version. From John Bossom's implementation. - * semaphore.h: Initial version. From John Bossom's implementation. + * semaphore.c: Initial version. + * semaphore.h: Initial version. Mon Dec 28 09:54:39 1998 Ross Johnson * pthread.h (pthread_attr_t_): Change to *pthread_attr_t. - * attr.c (pthread_attr_setstacksize): Merge with John Bossom's version. - (pthread_attr_getstacksize): Merge with John Bossom's version. - (pthread_attr_setstackaddr): Merge with John Bossom's version. - (pthread_attr_getstackaddr): Merge with John Bossom's version. - (pthread_attr_init): Merge with John Bossom's version. - (pthread_attr_destroy): Merge with John Bossom's version. - (pthread_attr_getdetachstate): Merge with John Bossom's version. - (pthread_attr_setdetachstate): Merge with John Bossom's version. +Mon Dec 28 09:54:39 1998 John Bossom, Ben Elliston + + * attr.c (pthread_attr_setstacksize): Merge with John's version. + (pthread_attr_getstacksize): Merge with John's version. + (pthread_attr_setstackaddr): Merge with John's version. + (pthread_attr_getstackaddr): Merge with John's version. + (pthread_attr_init): Merge with John's version. + (pthread_attr_destroy): Merge with John's version. + (pthread_attr_getdetachstate): Merge with John's version. + (pthread_attr_setdetachstate): Merge with John's version. (is_attr): attr is now **attr (was *attr), so add extra NULL pointer test. +Mon Dec 28 09:54:39 1998 Ross Johnson + * implement.h (pthread_attr_t_): Add and rename elements in JEB's version to correspond to original, so that it can be used with original attr routines. @@ -2173,39 +2230,38 @@ Thu Dec 17 19:10:46 1998 Ross Johnson (pthread_setspecific): Replaced by John Bossom's version. (pthread_getspecific): Replaced by John Bossom's version. -Mon Dec 7 09:44:40 1998 Ross Johnson +Mon Dec 7 09:44:40 1998 John Bossom - * cancel.c (pthread_setcancelstate): Replaced by John Bossom's version. - (pthread_setcanceltype): Replaced by John Bossom's version. - (pthread_testcancel): Replaced by John Bossom's version. - (pthread_cancel): Replaced by John Bossom's version. + * cancel.c (pthread_setcancelstate): Replaced. + (pthread_setcanceltype): Replaced. + (pthread_testcancel): Replaced. + (pthread_cancel): Replaced. - * exit.c (pthread_exit): Replaced by John Bossom's version. + * exit.c (pthread_exit): Replaced. - * misc.c (pthread_self): Replaced by John Bossom's version. - (pthread_equal): Replaced by John Bossom's version. + * misc.c (pthread_self): Replaced. + (pthread_equal): Replaced. - * sync.c (pthread_detach): Replaced by John Bossom's version. - (pthread_join): Replaced by John Bossom's version. + * sync.c (pthread_detach): Replaced. + (pthread_join): Replaced. - * create.c (pthread_create): Replaced by John Bossom's version. + * create.c (pthread_create): Replaced. - * private.c (ptw32_processInitialize): New by John Bossom. - (ptw32_processTerminate): Non-public function by John Bossom. - (ptw32_threadStart): Non-public function by John Bossom. - (ptw32_threadDestroy): Non-public function by John Bossom. - (ptw32_cleanupStack): Non-public function by John Bossom. - (ptw32_tkAssocCreate): Non-public function by John Bossom. - (ptw32_tkAssocDestroy): Non-public function by John Bossom. - (ptw32_callUserDestroyRoutines): Non-public function by John Bossom. + * private.c (ptw32_processInitialize): New. + (ptw32_processTerminate): New. + (ptw32_threadStart): New. + (ptw32_threadDestroy): New. + (ptw32_cleanupStack): New. + (ptw32_tkAssocCreate): New. + (ptw32_tkAssocDestroy): New. + (ptw32_callUserDestroyRoutines): New. - * implement.h: Added John Bossom's non-API structures and - declarations. + * implement.h: Added non-API structures and declarations. * dll.c (PthreadsEntryPoint): Cast return value of GetProcAddress to resolve compile warning from MSVC. - * dll.c (DLLmain): Replaced by John Bossom's version. + * dll.c (DLLmain): Replaced. * dll.c (PthreadsEntryPoint): Re-applied Anders Norlander's patch:- Initialize ptw32_try_enter_critical_section at startup -- cgit v1.2.3