diff options
| author | rpj <rpj> | 2002-02-08 01:51:17 +0000 | 
|---|---|---|
| committer | rpj <rpj> | 2002-02-08 01:51:17 +0000 | 
| commit | b29903300adc22ed277bbaa356aca8ed0c245957 (patch) | |
| tree | 02921a99a145dda1e78a315cc75016443839f2e0 | |
| parent | 14118935d2d6863a4746223d8e22c2e58ffebab5 (diff) | |
Copyright notice updates; module splitting; POSIX version
conditional compilation; refinements; bug fixes. See the ChangeLog.
157 files changed, 7833 insertions, 4392 deletions
| @@ -1,11 +1,112 @@ -2002-02-02  Ross Johnson  <rpj@setup1.ise.canberra.edu.au>
 +2002-02-07  Alexander Terekhov<TEREKHOV@de.ibm.com>
 -	Contributed by - Alexander Terekhov<TEREKHOV@de.ibm.com>
 -	
  	* nonportable.c (pthread_delay_np): Make a true
  	cancelation point. Deferred cancels will interrupt the
  	wait.
 +
 +2002-02-07  Ross Johnson  <rpj@setup1.ise.canberra.edu.au
 +
 +	* misc.c (ptw32_new): Add creation of cancelEvent so that
 +	implicit POSIX threads (Win32 threads with a POSIX face)
 +	are cancelable; mainly so that pthread_delay_np doesn't fail
 +	if called from the main thread.
 +	* create.c (pthread_create): Remove creation of cancelEvent
 +	from here; now in ptw32_new().
 +
 +	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]
 +
 +	* barrier.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.
 +	* cancel.c: Likewise.
 +	* barrier_attr_destroy.c: Separated routine from cancel.c.
 +	* barrier_attr_getpshared.c: Likewise.
 +	* barrier_attr_init.c: Likewise.
 +	* barrier_attr_setpshared.c: Likewise.
 +	* barrier_destroy.c: Likewise.
 +	* barrier_init.c: Likewise.
 +	* barrier_wait.c: Likewise.
 +	* cancel_cancel.c: Likewise.
 +	* cancel_setcancelstate.c: Likewise.
 +	* cancel_setcanceltype.c: Likewise.
 +	* cancel_testcancel.c: Likewise.
 +
 +2002-02-04  Max Woodbury <mtew@cds.duke.edu>
 +
 +	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 <windows.h>
 +	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 <limits.h>.
 +	(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  <rpj@setup1.ise.canberra.edu.au>
 +
 +	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  <rpj@setup1.ise.canberra.edu.au>
  	* 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  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by - Thomas Pfaff <tpfaff@gmx.net>
 -	                 Alexander Terekhov <TEREKHOV@de.ibm.com>
 +2002-01-07  Thomas Pfaff <tpfaff@gmx.net>, Alexander Terekhov <TEREKHOV@de.ibm.com>
  	* 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  <rpj@special.ise.canberra.edu.au>
 +2001-12-21  Alexander Terekhov <TEREKHOV@de.ibm.com>
 -	Contributed by - Alexander Terekhov <TEREKHOV@de.ibm.com>
 -	
  	* mutex.c (pthread_mutex_lock): Decrementing lock_idx was
  	not thread-safe.
  	(pthread_mutex_trylock): Likewise.
 -2001-10-26  Ross Johnson  <rpj@special.ise.canberra.edu.au>
 -
 -	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  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by - "Alexander Terekhov" <TEREKHOV@de.ibm.com>
 +2001-08-23  Alexander Terekhov <TEREKHOV@de.ibm.com>
  	* 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." <phil@hawksoft.com>
 +2001-08-23  Phil Frisbie, Jr. <phil@hawksoft.com>
  	* tsd.c (pthread_getspecific): Preserve the last
  	winsock error [from WSAGetLastError()].
 -2001-07-18  Ross Johnson  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by - "Scott McCaskill" <scott@magruder.org>
 +2001-07-18  Scott McCaskill <scott@magruder.org>
  	* 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  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by  - Alexander Terekhov.
 +2001-07-01  Alexander Terekhov <TEREKHOV@de.ibm.com>
  	* 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  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by -  Ralf Brese <Ralf.Brese@pdb4.siemens.de>
 +2001-06-23  Ralf Brese <Ralf.Brese@pdb4.siemens.de>
  	* 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  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by -  David Korn <dgk@research.att.com>
 +2001-06-18  David Korn <dgk@research.att.com>
  	* 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  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by  - Alexander Terekhov <TEREKHOV@de.ibm.com>
 -	                - Louis Thomas <lthomas@arbitrade.com>
 +2001-06-03  Alexander Terekhov <TEREKHOV@de.ibm.com>, Louis Thomas <lthomas@arbitrade.com>
  	* 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  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by  - Milan Gardian <Milan.Gardian@LEIBINGER.com>
 +2001-05-29  Milan Gardian <Milan.Gardian@LEIBINGER.com>
  	* 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  <rpj@setup1.ise.canberra.edu.au>
 -
 -	Contributed by 	- Thomas Pfaff <tpfaff@gmx.net>
 +2001-05-29  Thomas Pfaff <tpfaff@gmx.net>
  	* 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  <rpj@special.ise.canberra.edu.au>
 +2001-02-07  Alexander Terekhov <TEREKHOV@de.ibm.com>
 -	Contributed by  - Alexander Terekhov <TEREKHOV@de.ibm.com>
 -	
  	* 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  <rpj@setup1.ise.canberra.edu.au>
 +2000-10-10  Steven Reddie <smr@essemer.com.au>
          * misc.c (pthread_self): Restore Win32 "last error"
          cleared by TlsGetValue() call in
          pthread_getspecific()
 -        - "Steven Reddie" <smr@essemer.com.au>
 -2000-09-20  Ross Johnson  <rpj@setup1.ise.canberra.edu.au>
 +2000-09-20  Arthur Kantor <akantor@bexusa.com>
          * 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 <akantor@bexusa.com>
 -2000-09-13  Ross Johnson  <rpj@setup1.ise.canberra.edu.au>
 +2000-09-13  Jef Gearhart <jgearhart@tpssys.com>
  	* 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" <jgearhart@tpssys.com>
  2000-09-09  Ross Johnson  <rpj@special.ise.canberra.edu.au>
 @@ -999,12 +1071,13 @@  	* sync.c (pthread_join): Remove dead code.
 -2000-07-25  Ross Johnson  <rpj@special.ise.canberra.edu.au>
 +2000-07-25  Tristan Savatier <tristan@mpegtv.com>
  	* sched.c (sched_get_priority_max): Handle different WinCE and
  	Win32 priority values together.
  	(sched_get_priority_min): Ditto.
 -	- Tristan Savatier <tristan@mpegtv.com>
 +
 +2000-07-25  Ross Johnson  <rpj@special.ise.canberra.edu.au>
  	* 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 <dmb@itasoftware.com>
 +
 +	* 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  <rpj@setup1.ise.canberra.edu.au>
  	* 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" <dmb@itasoftware.com>
 -
  	* 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  <rpj@special.ise.canberra.edu.au>
 +2000-01-06  Erik Hensema <erik.hensema@group2000.nl>
  	* Makefile: Remove inconsistencies in 'cl' args
 -	- Erik Hensema <erik.hensema@group2000.nl>
  2000-01-04  Ross Johnson  <rpj@special.ise.canberra.edu.au>
 @@ -1176,6 +1249,8 @@  	(struct pthread_t_): Add cancelLock mutex for async cancel
  	safety.
 +1999-11-21  Jason Nye <jnye@nbnet.nb.ca>, Erik Hensema <erik.hensema@group2000.nl>
 +
  	* 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 <jnye@nbnet.nb.ca>
 -	- Erik Hensema <erik.hensema@group2000.nl>
 -1999-11-13  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +1999-11-13  Erik Hensema <erik.hensema@group2000.nl>
  	* configure.in (AC_OUTPUT): Put generated output into GNUmakefile
  	rather than Makefile. Makefile will become the MSC nmake compatible
  	version
 -	- Erik Hensema <erik.hensema@group2000.nl>
 +
 +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  <rpj@ixobrychus.canberra.edu.au>
 +1999-11-10  Todd Owen <towen@lucidcalm.dropbear.id.au>
  	* 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 <towen@lucidcalm.dropbear.id.au>
 +
 +1999-11-10  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
  	* 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  <rpj@ixobrychus.canberra.edu.au>
 +1999-11-05  Tristan Savatier <tristan@mpegtv.com>
  	* 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 <tristan@mpegtv.com>
 -1999-10-30  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +1999-10-30  Erik Hensema <erik.hensema@group2000.nl>
  	* 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 <erik.hensema@group2000.nl>
 -1999-10-23  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +1999-10-23  Erik Hensema <erik.hensema@group2000.nl>
  	* pthread.h (ctime_r): Fix incorrect argument "_tm"
 -	- Erik Hensema <erik.hensema@group2000.nl>
 -1999-10-21  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +1999-10-21  Aurelio Medina <aureliom@crt.com>
  	* 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 <aureliom@crt.com>
  1999-10-17  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 @@ -1260,7 +1330,7 @@  	* condvar.c (pthread_cond_broadcast): Only release semaphores
  	if there are waiting threads.
 -1999-10-15  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +1999-10-15  Lorin Hochstein <lmh@xiphos.ca>, Peter Slacik <Peter.Slacik@tatramed.sk>
  	* 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 <lmh@xiphos.ca> and 
 -	  Peter Slacik <Peter.Slacik@tatramed.sk>;
 -	the last waiter will now reset the CV's wasBroadcast flag
 -	- Graham Dumpleton <Graham.Dumpleton@ra.pad.otc.telstra.com.au>.
 +
 +1999-10-15  Graham Dumpleton <Graham.Dumpleton@ra.pad.otc.telstra.com.au>
 +
 +	* condvar.c (cond_wait_cleanup): the last waiter will now reset the CV's
 +	wasBroadcast flag
  Thu Sep 16 1999  Ross Johnson  <rpj@swan.canberra.edu.au>
 @@ -1288,10 +1359,7 @@ Thu Sep 16 1999  Ross Johnson  <rpj@swan.canberra.edu.au>  	* mutex.c: Modify comments.
  	* condvar.c: Modify comments.
 -Sat Sep 10 12:56:13 1999  Ross Johnson  <rpj@swan.canberra.edu.au>
 -
 -	The following code for POSIX read/write locks was contributed
 -	by Aurelio Medina.
 +1999-08-10  Aurelio Medina  <aureliom@crt.com>
  	* 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  <rpj@swan.canberra.edu.au>  	if mutex is PTHREAD_MUTEX_INITIALIZER and has not been
  	initialised yet.
 -Wed Sep  8 12:56:13 1999  Ross Johnson  <rpj@swan.canberra.edu.au>
 +1999-08-08 Milan Gardian <mg@tatramed.sk>
  	* mutex.c (pthread_mutex_destroy): Free mutex memory.
 -	- Milan Gardian <mg@tatramed.sk>
  1999-08-22  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 @@ -1329,17 +1396,14 @@ Wed Sep  8 12:56:13 1999  Ross Johnson  <rpj@swan.canberra.edu.au>  	the application thread startup routine.
  	- Milan Gardian <mg@tatramed.sk>
 -1999-08-18  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +1999-08-18  John Bossom <john.Bossom@cognos.com>
  	* exit.c (pthread_exit): Put status into pthread_t->exitStatus
 -	- John Bossom <john.Bossom@cognos.com>
  	* private.c (ptw32_threadStart): Set pthread->exitStatus
  	on exit of try{} block.
 -	- John Bossom <john.Bossom@cognos.com>
  	* 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 <john.Bossom@cognos.com>
  Tue Aug 17 20:17:58 CDT 1999  Mumit Khan  <khan@xraylith.wisc.edu>
 @@ -1374,19 +1438,14 @@ Tue Aug 17 20:00:08 1999  Mumit Khan  <khan@xraylith.wisc.edu>  	* exit.c (pthread_exit): Check for implicitly created threads
  	to avoid raising an unhandled exception.
 -1999-07-12  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +1999-07-12  Peter Slacik <Peter.Slacik@tatramed.sk>
  	* 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 <Peter.Slacik@tatramed.sk>
 -1999-07-09  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 -
 -	The following changes fix a bug identified by
 -	Lorin Hochstein <lmh@xiphos.ca> and solved by
 -	John Bossom <John.Bossom@Cognos.COM>.
 +1999-07-09  Lorin Hochstein <lmh@xiphos.ca>, John Bossom <John.Bossom@Cognos.COM>
  	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  <khan@xraylith.wisc.edu>  	C++ per-thread exception information.
  	(general): Define and rename exceptions.
 +1999-07-09  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
  	* 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  <rpj@ixobrychus.canberra.edu.au>  	* semaphore.h (mode_t): Conditionally typedef it.
 -Fri May 28 13:33:05 1999  Ross Johnson  <rpj@swan.canberra.edu.au>
 +Fri May 28 13:33:05 1999  Mark E. Armstrong <avail@pacbell.net>
  	* condvar.c (pthread_cond_broadcast): Fix possible memory fault
 -	- Mark E. Armstrong <avail@pacbell.net>
 -Thu May 27 13:08:46 1999  Ross Johnson  <rpj@swan.canberra.edu.au>
 +Thu May 27 13:08:46 1999  Peter Slacik <Peter.Slacik@tatramed.sk>
  	* condvar.c (pthread_cond_broadcast): Fix logic bug
 -	- Peter Slacik <Peter.Slacik@tatramed.sk>;
 -	optimise sem_post loop
 -	- Bossom, John <John.Bossom@Cognos.COM>.
 -Fri May 14 12:13:18 1999  Ross Johnson  <rpj@swan.canberra.edu.au>
 +Thu May 27 13:08:46 1999  Bossom, John <John.Bossom@Cognos.COM>
 +
 +	* condvar.c (pthread_cond_broadcast): optimise sem_post loop
 +
 +Fri May 14 12:13:18 1999  Mike Russo <miker@eai.com>
  	* attr.c (pthread_attr_setdetachstate): Fix logic bug
 -	- Mike Russo <miker@eai.com>.
  Sat May  8 09:42:30 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 @@ -1490,41 +1549,37 @@ Fri Apr  2 11:08:50 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>  	* 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 <jebossom@cognos.com>
 -	(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  <rpj@swan.canberra.edu.au>
 +Fri Apr  2 11:08:50 1999  John Bossom <jebossom@cognos.com>
 +
 +	* 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 <tml@iki.fi>
  	* semaphore.c (ptw32_sem_timedwait): Check for negative
  	milliseconds.
 -	- Tor Lillqvist <tml@iki.fi>
 -Wed Mar 24 11:32:07 1999  Ross Johnson  <rpj@swan.canberra.edu.au>
 +Wed Mar 24 11:32:07 1999  John Bossom <jebossom@cognos.com>
  	* misc.c (CancelableWait): Initialise exceptionInformation[2].
  	(pthread_self): Get a real Win32 thread handle for implicit threads.
 -	- John Bossom <jebossom@cognos.com>
  	* cancel.c (pthread_testcancel): Initialise exceptionInformation[2].
 -	- John Bossom <jebossom@cognos.com>
  	* implement.h (SE_INFORMATION): Fix values.
 -	- John Bossom <jebossom@cognos.com>
  	* private.c (ptw32_threadDestroy): Close the thread handle.
 -	- John Bossom <jebossom@cognos.com>
  Fri Mar 19 12:57:27 1999  Ross Johnson  <rpj@swan.canberra.edu.au>
 @@ -1860,11 +1915,12 @@ Tue Jan 19 18:27:42 1999  Ross Johnson  <rpj@swan.canberra.edu.au>  	(pthreadCancelableTimedWait): Just calls CancelableWait()
  	with passed in timeout.
 +Tue Jan 19 18:27:42 1999  Scott Lightner <scott@curriculum.com>
 +
  	* 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 <scott@curriculum.com>
  Tue Jan 19 10:27:39 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 @@ -1998,31 +2054,29 @@ Wed Jan 13 09:34:52 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>  	* build.bat: Delete old binaries before compiling/linking.
 -Tue Jan 12 09:58:38 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +Tue Jan 12 09:58:38 1999  Tor Lillqvist <tml@iki.fi>
  	* dll.c: The Microsoft compiler pragmas probably are more
  	appropriately protected by _MSC_VER than by _WIN32.
 -	- Tor Lillqvist <tml@iki.fi>.
 -
 -	* 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 <tml@iki.fi>.
  	* pthread.def: pthread_mutex_destroy was missing from the def file
 -	- Tor Lillqvist <tml@iki.fi>.
  	* 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 <tml@iki.fi>. 
 +
 +Tue Jan 12 09:58:38 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +
 +	* 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  <rpj@ixobrychus.canberra.edu.au>  	* cleanup.c (ptw32_push_cleanup): Provide conditional 
  	compile of cleanup->prev.
 -1999-01-11  Ben Elliston  <bje@cygnus.com>
 +1999-01-11  Tor Lillqvist <tml@iki.fi>
  	* condvar.c (pthread_cond_init): Invert logic when testing the
  	return value from calloc().
 -	- Tor Lillqvist <tml@iki.fi>.
  Sat Jan  9 14:32:08 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 @@ -2116,26 +2169,30 @@ Tue Dec 29 13:11:16 1998  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>  	* attr.c: Rename "detachedstate" to "detachstate".
 -Mon Dec 28 09:54:39 1998  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
 +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  <rpj@ixobrychus.canberra.edu.au>
  	* 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  <rpj@ixobrychus.canberra.edu.au>  	(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  <rpj@ixobrychus.canberra.edu.au>
 +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
 diff --git a/GNUmakefile b/GNUmakefile index 047e62e..5887ea2 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,23 +1,39 @@  # -# Pthreads-win32 - POSIX Threads Library for Win32 -# Copyright (C) 1998 +# --------------------------------------------------------------------------  # -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library 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 -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public -# License along with this library; if not, write to the Free -# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, -# MA 02111-1307, USA +#      Pthreads-win32 - POSIX Threads Library for Win32 +#      Copyright(C) 1998 John E. Bossom +#      Copyright(C) 1999,2002 Pthreads-win32 contributors +#  +#      Contact Email: rpj@ise.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  # +DEVROOT	= C:\PTHREADS + +DLLDEST	= $(DEVROOT)\DLL +LIBDEST	= $(DEVROOT)\DLL +  #RM	= rm  #MV	= mv  #CP	= cp @@ -41,23 +57,148 @@ GC_CFLAGS	= -D__CLEANUP_C  GCE_CFLAGS	= -D__CLEANUP_CXX -x c++ -mthreads  ## Mingw32 -MAKE	= make -CFLAGS	= $(OPT) -I. -D_WIN32_WINNT=0x400 -DHAVE_CONFIG_H -DPTW32_BUILD -Wall +MAKE		= make +CFLAGS	= $(OPT) -I. -D_WIN32_WINNT=0x400 -DHAVE_CONFIG_H -Wall  ## Cygwin G++ -#CFLAGS	= $(OPT) -x $(GLANG) -fhandle-exceptions -D_WIN32_WINNT=0x400 -I. -DHAVE_CONFIG_H -DPTW32_BUILD -Wall +#CFLAGS	= $(OPT) -x $(GLANG) -fhandle-exceptions -D_WIN32_WINNT=0x400 -I. -DHAVE_CONFIG_H -Wall + +# Agregate modules for inlinability +DLL_OBJS	= \ +		attr.o \ +		barrier.o \ +		cancel.o \ +		cleanup.o \ +		condvar.o \ +		create.o \ +		dll.o \ +		errno.o \ +		exit.o \ +		fork.o \ +		global.o \ +		misc.o \ +		mutex.o \ +		nonportable.o \ +		private.o \ +		rwlock.o \ +		sched.o \ +		semaphore.o \ +		signal.o \ +		spin.o \ +		sync.o \ +		tsd.o -OBJS	= attr.o barrier.o cancel.o cleanup.o condvar.o create.o dll.o errno.o \ -	  exit.o fork.o global.o misc.o mutex.o nonportable.o \ -	  private.o rwlock.o sched.o semaphore.o signal.o spin.o sync.o tsd.o +# Separate modules for minimum size statically linked images +SMALL_STATIC_OBJS	= \ +		attr_is_attr.o \ +		attr_init.o \ +		attr_destroy.o \ +		attr_getdetachstate.o \ +		attr_setdetachstate.o \ +		attr_getstackaddr.o \ +		attr_setstackaddr.o \ +		attr_getstacksize.o \ +		attr_setstacksize.o \ +		attr_getscope.o \ +		attr_setscope.o \ +		barrier_init.o \ +		barrier_destroy.o \ +		barrier_wait.o \ +		barrier_attr_init.o \ +		barrier_attr_destroy.o \ +		barrier_attr_setpshared.o \ +		barrier_attr_getpshared.o \ +		cancel_setcancelstate.o \ +		cancel_setcanceltype.o \ +		cancel_testcancel.o \ +		cancel_cancel.o \ +		cleanup.o \ +		condvar.o \ +		create.o \ +		dll.o \ +		errno.o \ +		exit.o \ +		fork.o \ +		global.o \ +		misc.o \ +		mutex.o \ +		nonportable.o \ +		private.o \ +		rwlock.o \ +		sched.o \ +		semaphore_init.o \ +		semaphore_destroy.o \ +		semaphore_trywait.o \ +		semaphore_timedwait.o \ +		semaphore_wait.o \ +		semaphore_post.o \ +		semaphore_postmultiple.o \ +		semaphore_getvalue.o \ +		semaphore_increase.o \ +		semaphore_decrease.o \ +		semaphore_open.o \ +		semaphore_close.o \ +		semaphore_unlink.o \ +		signal.o \ +		spin.o \ +		sync.o \ +		tsd.o -INCL	= implement.h semaphore.h pthread.h windows.h +INCL	= \ +		config.h \ +		implement.h \ +		semaphore.h \ +		pthread.h \ +		need_errno.h + +ATTR_SRCS	= \ +		attr_is_attr.c \ +		attr_init.c \ +		attr_destroy.c \ +		attr_getdetachstate.c \ +		attr_setdetachstate.c \ +		attr_getstackaddr.c \ +		attr_setstackaddr.c \ +		attr_getstacksize.c \ +		attr_setstacksize.c \ +		attr_getscope.c \ +		attr_setscope.c + +BARRIER_SRCS = \ +		barrier_init.c \ +		barrier_destroy.c \ +		barrier_wait.c \ +		barrier_attr_init.c \ +		barrier_attr_destroy.c \ +		barrier_attr_setpshared.c \ +		barrier_attr_getpshared.c + +CANCEL_SRCS	= \ +		cancel_setcancelstate.c \ +		cancel_setcanceltype.c \ +		cancel_testcancel.c \ +		cancel_cancel.c  + +SEMAPHORE_SRCS = \ +		semaphore_init.c \ +		semaphore_destroy.c \ +		semaphore_trywait.c \ +		semaphore_timedwait.c \ +		semaphore_wait.c \ +		semaphore_post.c \ +		semaphore_postmultiple.c \ +		semaphore_getvalue.c \ +		semaphore_increase.c \ +		semaphore_decrease.c \ +		semaphore_open.c \ +		semaphore_close.c \ +		semaphore_unlink.c  GC_DLL 	= pthreadGC.dll -GCE_DLL = pthreadGCE.dll +GCE_DLL	= pthreadGCE.dll  GC_LIB	= libpthreadGC.a -GCE_LIB = libpthreadGCE.a +GCE_LIB	= libpthreadGCE.a  all: @@ -90,11 +231,11 @@ tests:  .c.o:;		 $(CC) -c -o $@ $(CFLAGS) $(CLEANUP_FLAGS) $< -$(GC_DLL): $(OBJS) +$(GC_DLL): $(DLL_OBJS)  	$(CC) $(OPT) -shared -o $@ $^ $(LFLAGS)  	dlltool -k --dllname $@ --output-lib $(GC_LIB) --def pthread.def -$(GCE_DLL): $(OBJS) +$(GCE_DLL): $(DLL_OBJS)  	$(CXX) $(OPT) -mthreads -shared -o $@ $^  $(LFLAGS)  	dlltool -k --dllname $@ --output-lib $(GCE_LIB) --def pthread.def @@ -110,4 +251,7 @@ realclean: clean  	-$(RM) $(GC_DLL)  	-$(RM) $(GCE_DLL) - +attr.o:		attr.c $(ATTR_SRCS) $(INCL) +barrier.o:		barrier.c $(BARRIER_SRCS) $(INCL) +cancel.o:		cancel.c $(CANCEL_SRCS) $(INCL) +semaphore.o:	semaphore.c $(SEMAPHORE_SRCS) $(INCL) @@ -1,4 +1,3 @@ -
  # This makefile is compatible with MS nmake and can be used as a
  # replacement for buildlib.bat. I've changed the target from an ordinary dll
  # (/LD) to a debugging dll (/LDd).
 @@ -6,47 +5,150 @@  # The variables $DLLDEST and $LIBDEST hold the destination directories for the
  # dll and the lib, respectively. Probably all that needs to change is $DEVROOT.
 -DEVROOT=c:\pthreads\dll
 +DEVROOT=c:\pthreads
 -DLLDEST=$(DEVROOT)
 -LIBDEST=$(DEVROOT)
 +DLLDEST=$(DEVROOT)\DLL
 +LIBDEST=$(DEVROOT)\DLL
  DLLS	= pthreadVCE.dll pthreadVSE.dll pthreadVC.dll
  OPTIM	= /O2
  # C++ Exceptions
 -VCEFLAGS	= /GX /TP /DPtW32NoCatchWarn /D__CLEANUP_CXX
 +VCEFLAGS	= /GX /TP /D__CLEANUP_CXX
  #Structured Exceptions
  VSEFLAGS	= /D__CLEANUP_SEH
  #C cleanup code
  VCFLAGS	= /D__CLEANUP_C
 -#CFLAGS	= $(OPTIM) /W3 /MT /nologo /Yd /Zi /I. /D_WIN32_WINNT=0x400 /DPTW32_BUILD /DTEST_ICE
 -CFLAGS	= $(OPTIM) /W3 /MT /nologo /Yd /Zi /I. /D_WIN32_WINNT=0x400 /DPTW32_BUILD
 -
 -OBJ=  attr.obj \
 -	barrier.obj \
 -	cancel.obj \
 -	cleanup.obj \
 -	condvar.obj \
 -	create.obj \
 -	dll.obj \
 -	errno.obj \
 -	exit.obj \
 -	fork.obj \
 -	global.obj \
 -	misc.obj \
 -	mutex.obj \
 -	nonportable.obj \
 -	private.obj \
 -	rwlock.obj \
 -	sched.obj \
 -	semaphore.obj \
 -	signal.obj \
 -	spin.obj \
 -	sync.obj \
 -	tsd.obj
 +#CFLAGS	= $(OPTIM) /W3 /MT /nologo /Yd /Zi /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DTEST_ICE
 +CFLAGS	= $(OPTIM) /W3 /MT /nologo /Yd /Zi /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H
 +
 +# Agregate modules for inlinability
 +DLL_OBJS	= \
 +		attr.obj \
 +		barrier.obj \
 +		cancel.obj \
 +		cleanup.obj \
 +		condvar.obj \
 +		create.obj \
 +		dll.obj \
 +		errno.obj \
 +		exit.obj \
 +		fork.obj \
 +		global.obj \
 +		misc.obj \
 +		mutex.obj \
 +		nonportable.obj \
 +		private.obj \
 +		rwlock.obj \
 +		sched.obj \
 +		semaphore.obj \
 +		signal.obj \
 +		spin.obj \
 +		sync.obj \
 +		tsd.obj
 +
 +# Separate modules for minimising the size of statically linked images
 +SMALL_STATIC_OBJS	= \
 +		attr_is_attr.obj \
 +		attr_init.obj \
 +		attr_destroy.obj \
 +		attr_getdetachstate.obj \
 +		attr_setdetachstate.obj \
 +		attr_getstackaddr.obj \
 +		attr_setstackaddr.obj \
 +		attr_getstacksize.obj \
 +		attr_setstacksize.obj \
 +		attr_getscope.obj \
 +		attr_setscope.obj \
 +		barrier_init.obj \
 +		barrier_destroy.obj \
 +		barrier_wait.obj \
 +		barrier_attr_init.obj \
 +		barrier_attr_destroy.obj \
 +		barrier_attr_setpshared.obj \
 +		barrier_attr_getpshared.obj \
 +		cancel_setcancelstate.obj \
 +		cancel_setcanceltype.obj \
 +		cancel_testcancel.obj \
 +		cancel_cancel.obj \
 +		cleanup.obj \
 +		condvar.obj \
 +		create.obj \
 +		dll.obj \
 +		errno.obj \
 +		exit.obj \
 +		fork.obj \
 +		global.obj \
 +		misc.obj \
 +		mutex.obj \
 +		nonportable.obj \
 +		private.obj \
 +		rwlock.obj \
 +		sched.obj \
 +		semaphore_init.obj \
 +		semaphore_destroy.obj \
 +		semaphore_trywait.obj \
 +		semaphore_timedwait.obj \
 +		semaphore_wait.obj \
 +		semaphore_post.obj \
 +		semaphore_postmultiple.obj \
 +		semaphore_getvalue.obj \
 +		semaphore_increase.obj \
 +		semaphore_decrease.obj \
 +		semaphore_open.obj \
 +		semaphore_close.obj \
 +		semaphore_unlink.obj \
 +		signal.obj \
 +		spin.obj \
 +		sync.obj \
 +		tsd.obj
 +
 +INCL	= config.h implement.h semaphore.h pthread.h need_errno.h
 +
 +ATTR_SRCS	= \
 +		attr_is_attr.c \
 +		attr_init.c \
 +		attr_destroy.c \
 +		attr_getdetachstate.c \
 +		attr_setdetachstate.c \
 +		attr_getstackaddr.c \
 +		attr_setstackaddr.c \
 +		attr_getstacksize.c \
 +		attr_setstacksize.c \
 +		attr_getscope.c \
 +		attr_setscope.c
 +
 +BARRIER_SRCS = \
 +		barrier_init.c \
 +		barrier_destroy.c \
 +		barrier_wait.c \
 +		barrier_attr_init.c \
 +		barrier_attr_destroy.c \
 +		barrier_attr_setpshared.c \
 +		barrier_attr_getpshared.c
 +
 +CANCEL_SRCS	= \
 +		cancel_setcancelstate.c \
 +		cancel_setcanceltype.c \
 +		cancel_testcancel.c \
 +		cancel_cancel.c 
 +
 +SEMAPHORE_SRCS = \
 +		semaphore_init.c \
 +		semaphore_destroy.c \
 +		semaphore_trywait.c \
 +		semaphore_timedwait.c \
 +		semaphore_wait.c \
 +		semaphore_post.c \
 +		semaphore_postmultiple.c \
 +		semaphore_getvalue.c \
 +		semaphore_increase.c \
 +		semaphore_decrease.c \
 +		semaphore_open.c \
 +		semaphore_close.c \
 +		semaphore_unlink.c
  all:
  	@ echo Run one of the following command lines:
 @@ -84,10 +186,16 @@ install: $(DLLS)  	copy pthread*.dll $(DLLDEST)
  	copy pthread*.lib $(LIBDEST)
 -$(DLLS): $(OBJ) pthread.def
 -	cl /LD /Zi /nologo $(OBJ) \
 +$(DLLS): $(DLL_OBJS) pthread.def
 +	cl /LD /Zi /nologo $(DLL_OBJS) \
  		/link /nodefaultlib:libcmt /implib:$*.lib \
  		msvcrt.lib wsock32.lib /def:pthread.def /out:$@
  .c.obj:
  	cl $(EHFLAGS) $(CFLAGS) -c $<
 +
 +attr.obj:		attr.c $(ATTR_SRCS) $(INCL)
 +barrier.obj:	barrier.c $(BARRIER_SRCS) $(INCL)
 +cancel.obj:		cancel.c $(CANCEL_SRCS) $(INCL)
 +semaphore.obj:	semaphore.c $(SEMAPHORE_SRCS) $(INCL)
 +
 @@ -1,24 +1,24 @@ -/* - * nmake file for uwin pthread library - */ - -VERSION = - -CCFLAGS = -V -g $(CC.DLL) -PTW32_BUILD	== 1 -_MT		== 1 -_timeb		== timeb -_ftime		== ftime -_errno		== _ast_errno - -$(INCLUDEDIR)	:INSTALLDIR:	pthread.h sched.h - -pthread $(VERSION) :LIBRARY: pthread.def attr.c barrier.c cancel.c cleanup.c condvar.c \ -	create.c dll.c exit.c fork.c global.c misc.c mutex.c private.c \ -	rwlock.c sched.c semaphore.c spin.c sync.c tsd.c nonportable.c - -:: ANNOUNCE CONTRIBUTORS COPYING.LIB ChangeLog FAQ GNUmakefile MAINTAINERS \ -	Makefile Makefile.in Makefile.vc NEWS PROGRESS README README.WinCE \ -	TODO WinCE-PORT install-sh errno.c tests tests.mk acconfig.h \ -	config.guess config.h.in config.sub configure configure.in signal.c \ -	README.CV README.NONPORTABLE pthread.dsp pthread.dsw - +/*
 + * nmake file for uwin pthread library
 + */
 +
 +VERSION 		= -
 +CCFLAGS 		= -V -g $(CC.DLL)
 +HAVE_CONFIG_H	== 1
 +_MT			== 1
 +_timeb		== timeb
 +_ftime		== ftime
 +_errno		== _ast_errno
 +
 +$(INCLUDEDIR)	:INSTALLDIR:	pthread.h sched.h
 +
 +pthread $(VERSION) :LIBRARY: pthread.def attr.c barrier.c cancel.c cleanup.c condvar.c \
 +	create.c dll.c exit.c fork.c global.c misc.c mutex.c private.c \
 +	rwlock.c sched.c semaphore.c spin.c sync.c tsd.c nonportable.c
 +
 +:: ANNOUNCE CONTRIBUTORS COPYING.LIB ChangeLog FAQ GNUmakefile MAINTAINERS \
 +	Makefile Makefile.in Makefile.vc NEWS PROGRESS README README.WinCE \
 +	TODO WinCE-PORT install-sh errno.c tests tests.mk acconfig.h \
 +	config.guess config.h.in config.sub configure configure.in signal.c \
 +	README.CV README.NONPORTABLE pthread.dsp pthread.dsw
 +
 diff --git a/Nmakefile.tests b/Nmakefile.tests index 2427bf9..ca0cc6f 100644 --- a/Nmakefile.tests +++ b/Nmakefile.tests @@ -1,6 +1,6 @@  /* for running tests */
 -CCFLAGS = -g 
 -_MT	== 1
 +CCFLAGS 	= -g 
 +_MT		== 1
  _timeb	== timeb
  _ftime	== ftime 
 @@ -46,9 +46,14 @@ mutex7::	mutex7.c  mutex7e::	mutex7e.c
  mutex7n::	mutex7n.c
  mutex7r::	mutex7r.c
 +mutex8::	mutex8.c
 +mutex8e::	mutex8e.c
 +mutex8n::	mutex8n.c
 +mutex8r::	mutex8r.c
  equal1::	equal1.c
  exit2::		exit2.c
  exit3::		exit3.c
 +exit4::		exit4.c
  join0::		join0.c
  join1::		join1.c
  join2::		join2.c
 @@ -76,6 +81,8 @@ context1::	context1.c  cancel3::	cancel3.c
  cancel4::	cancel4.c
  cancel5::	cancel5.c
 +cancel6a::	cancel6a.c
 +cancel6d::	cancel6d.c
  cleanup0::	cleanup0.c
  cleanup1::	cleanup1.c
  cleanup2::	cleanup2.c
 @@ -123,6 +130,10 @@ mutex7		:test:	mutex6  mutex7n		:test:	mutex6n
  mutex7e		:test:	mutex6e
  mutex7r		:test:	mutex6r
 +mutex8		:test:	mutex7
 +mutex8n		:test:	mutex7n
 +mutex8e		:test:	mutex7e
 +mutex8r		:test:	mutex7r
  equal1		:test:	create1
  exit2		:test:	create1
  exit3		:test:	create1
 @@ -155,6 +166,8 @@ context1	:test:	cancel2  cancel3		:test:	context1
  cancel4		:test:	cancel3
  cancel5		:test:	cancel3
 +cancel6a		:test:	cancel3
 +cancel6d		:test:	cancel3
  cleanup0	:test:	cancel5
  cleanup1	:test:	cleanup0
  cleanup2	:test:	cleanup1
 @@ -179,4 +192,5 @@ benchtest5      :test:  benchtest4  exception1	:test:	cancel4
  exception2	:test:	exception1
  exception3	:test:	exception2
 +exit4		:test:	exit3
 @@ -2,543 +2,54 @@   * attr.c   *   * Description: - * This translation unit implements operations on thread attribute objects. + * This translation unit agregates operations on thread attribute objects. + * It is used for inline optimisation.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * The included modules are used separately when static executable sizes + * must be minimised.   * - * Contact Email: rpj@ise.canberra.edu.au + * --------------------------------------------------------------------------   * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */ -/* ignore warning "unreferenced formal parameter" */ -#ifdef _MSC_VER -#pragma warning( disable : 4100 ) -#endif -  #include "pthread.h"  #include "implement.h" -static INLINE int -is_attr(const pthread_attr_t *attr) -{ -  /* Return 0 if the attr object is valid, non-zero otherwise. */ - -  return (attr == NULL ||  -	  *attr == NULL ||  -	  (*attr)->valid != PTW32_ATTR_VALID); -} - - -int -pthread_attr_setstacksize(pthread_attr_t *attr, -			  size_t stacksize) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function specifies the size of the stack on -      *      which threads created with 'attr' will run. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_attr_t -      * -      *      stacksize -      *              stack size, in bytes. -      * -      * -      * DESCRIPTION -      *      This function specifies the size of the stack on -      *      which threads created with 'attr' will run. -      * -      *      NOTES: -      *              1)      Function supported only if this macro is -      *                      defined: -      * -      *                              _POSIX_THREAD_ATTR_STACKSIZE -      * -      *              2)      Find the default first (using -      *                      pthread_attr_getstacksize), then increase -      *                      by multiplying. -      * -      *              3)      Only use if thread needs more than the -      *                      default. -      * -      * RESULTS -      *              0               successfully set stack size, -      *              EINVAL          'attr' is invalid or stacksize too -      *                              small or too big. -      *              ENOSYS          function not supported -      * -      * ------------------------------------------------------ -      */ -{ -#ifdef _POSIX_THREAD_ATTR_STACKSIZE - -#if PTHREAD_STACK_MIN > 0 - -  /*  Verify that the stack size is within range. */ -  if (stacksize < PTHREAD_STACK_MIN) -    { -      return EINVAL; -    } - -#endif - -  if (is_attr(attr) != 0) -    { -      return EINVAL; -    } - -  /* Everything is okay. */ -  (*attr)->stacksize = stacksize; -  return 0; - -#else - -  return ENOSYS; - -#endif /* _POSIX_THREAD_ATTR_STACKSIZE */ - -} - -int -pthread_attr_getstacksize(const pthread_attr_t *attr, -			  size_t *stacksize) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function determines the size of the stack on -      *      which threads created with 'attr' will run. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_attr_t -      * -      *      stacksize -      *              pointer to size_t into which is returned the -      *              stack size, in bytes. -      * -      * -      * DESCRIPTION -      *      This function determines the size of the stack on -      *      which threads created with 'attr' will run. -      * -      *      NOTES: -      *              1)      Function supported only if this macro is -      *                      defined: -      * -      *                              _POSIX_THREAD_ATTR_STACKSIZE -      * -      *              2)      Use on newly created attributes object to -      *                      find the default stack size. -      * -      * RESULTS -      *              0               successfully retrieved stack size, -      *              EINVAL          'attr' is invalid -      *              ENOSYS          function not supported -      * -      * ------------------------------------------------------ -      */ -{ -#ifdef _POSIX_THREAD_ATTR_STACKSIZE - -  if (is_attr(attr) != 0) -    { -      return EINVAL; -    } - -  /* Everything is okay. */ -  *stacksize = (*attr)->stacksize; -  return 0; - -#else - -  return ENOSYS; - -#endif /* _POSIX_THREAD_ATTR_STACKSIZE */ - -} - - -int -pthread_attr_setstackaddr(pthread_attr_t *attr, -			  void *stackaddr) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      Threads created with 'attr' will run on the stack -      *      starting at 'stackaddr'. -      *      Stack must be at least PTHREAD_STACK_MIN bytes. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_attr_t -      * -      *      stacksize -      *              stack size, in bytes. -      * -      * -      * DESCRIPTION -      *      Threads created with 'attr' will run on the stack -      *      starting at 'stackaddr'. -      *      Stack must be at least PTHREAD_STACK_MIN bytes. -      * -      *      NOTES: -      *              1)      Function supported only if this macro is -      *                      defined: -      * -      *                              _POSIX_THREAD_ATTR_STACKADDR -      * -      *              2)      Create only one thread for each stack -      *                      address.. -      * -      *              3)      Ensure that stackaddr is aligned. -      * -      * RESULTS -      *              0               successfully set stack address, -      *              EINVAL          'attr' is invalid -      *              ENOSYS          function not supported -      * -      * ------------------------------------------------------ -      */ -{ -#if defined( _POSIX_THREAD_ATTR_STACKADDR ) - -  if (is_attr(attr) != 0) -    { -      return EINVAL; -    } - -  (*attr)->stackaddr = stackaddr; -  return 0; - -#else - -  return ENOSYS; - -#endif /* _POSIX_THREAD_ATTR_STACKADDR */ -} - -int -pthread_attr_getstackaddr(const pthread_attr_t *attr, -			  void **stackaddr) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function determines the address of the stack -      *      on which threads created with 'attr' will run. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_attr_t -      * -      *      stackaddr -      *              pointer into which is returned the stack address. -      * -      * -      * DESCRIPTION -      *      This function determines the address of the stack -      *      on which threads created with 'attr' will run. -      * -      *      NOTES: -      *              1)      Function supported only if this macro is -      *                      defined: -      * -      *                              _POSIX_THREAD_ATTR_STACKADDR -      * -      *              2)      Create only one thread for each stack -      *                      address.. -      * -      * RESULTS -      *              0               successfully retreived stack address, -      *              EINVAL          'attr' is invalid -      *              ENOSYS          function not supported -      * -      * ------------------------------------------------------ -      */ -{ -#if defined( _POSIX_THREAD_ATTR_STACKADDR ) -   -  if (is_attr(attr) != 0) -    { -      return EINVAL; -    } - -  *stackaddr = (*attr)->stackaddr; -  return 0; - -#else - -  return ENOSYS; - -#endif /* _POSIX_THREAD_ATTR_STACKADDR */ -} - - -int -pthread_attr_init(pthread_attr_t *attr) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      Initializes a thread attributes object with default -      *      attributes. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_attr_t -      * -      * -      * DESCRIPTION -      *      Initializes a thread attributes object with default -      *      attributes. -      * -      *      NOTES: -      *              1)      Used to define thread attributes -      * -      * RESULTS -      *              0               successfully initialized attr, -      *              ENOMEM          insufficient memory for attr. -      * -      * ------------------------------------------------------ -      */ -{ -  pthread_attr_t attr_result; - -  if (attr == NULL) -    { -      /* This is disallowed. */ -      return EINVAL; -    } - -  attr_result = (pthread_attr_t) malloc (sizeof (*attr_result)); - -  if (attr_result == NULL) -    { -      return ENOMEM; -    } - -#ifdef _POSIX_THREAD_ATTR_STACKSIZE -  /* -   * Default to zero size. Unless changed explicitly this -   * will allow Win32 to set the size to that of the -   * main thread. -   */ -  attr_result->stacksize = 0; -#endif - -#ifdef _POSIX_THREAD_ATTR_STACKADDR -  /* FIXME: Set this to something sensible when we support it. */ -  attr_result->stackaddr = NULL; -#endif - -  attr_result->detachstate = PTHREAD_CREATE_JOINABLE; - -#if HAVE_SIGSET_T -  memset(&(attr_result->sigmask), 0, sizeof(sigset_t)); -#endif /* HAVE_SIGSET_T */ - -  /* -   * Win32 sets new threads to THREAD_PRIORITY_NORMAL and -   * not to that of the parent thread. We choose to default to -   * this arrangement. -   */ -  attr_result->param.sched_priority = THREAD_PRIORITY_NORMAL; -  attr_result->inheritsched = PTHREAD_EXPLICIT_SCHED; -  attr_result->contentionscope = PTHREAD_SCOPE_SYSTEM; - -  attr_result->valid = PTW32_ATTR_VALID; - -  *attr = attr_result; - -  return 0; -} - -int -pthread_attr_destroy(pthread_attr_t *attr) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      Destroys a thread attributes object. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_attr_t -      * -      * -      * DESCRIPTION -      *      Destroys a thread attributes object. -      * -      *      NOTES: -      *              1)      Does not affect threads created with 'attr'. -      * -      * RESULTS -      *              0               successfully destroyed attr, -      *              EINVAL          'attr' is invalid. -      * -      * ------------------------------------------------------ -      */ -{ -  if (is_attr(attr) != 0) -    { -      return EINVAL; -    } - -  /* -   * Set the attribute object to a specific invalid value. -   */ -  (*attr)->valid = 0; -  free (*attr); -  *attr = NULL; - -  return 0; -} - -int -pthread_attr_getdetachstate(const pthread_attr_t *attr, -			    int *detachstate) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function determines whether threads created with -      *      'attr' will run detached. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_attr_t -      * -      *      detachstate -      *              pointer to an integer into which is returned one -      *              of: -      * -      *              PTHREAD_CREATE_JOINABLE -      *                              Thread ID is valid, must be joined -      * -      *              PTHREAD_CREATE_DETACHED -      *                              Thread ID is invalid, cannot be joined, -      *                              canceled, or modified -      * -      * -      * DESCRIPTION -      *      This function determines whether threads created with -      *      'attr' will run detached. -      * -      *      NOTES: -      *              1)      You cannot join or cancel detached threads. -      * -      * RESULTS -      *              0               successfully retrieved detach state, -      *              EINVAL          'attr' is invalid -      * -      * ------------------------------------------------------ -      */ -{ -  if (is_attr(attr) != 0 || detachstate == NULL) -    { -      *detachstate = PTHREAD_CREATE_DETACHED; -      return EINVAL; -    } - -  *detachstate = (*attr)->detachstate; -  return 0; -} - -int -pthread_attr_setdetachstate(pthread_attr_t *attr, -			    int detachstate) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function specifies whether threads created with -      *      'attr' will run detached. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_attr_t -      * -      *      detachstate -      *              an integer containing one of: -      * -      *              PTHREAD_CREATE_JOINABLE -      *                              Thread ID is valid, must be joined -      * -      *              PTHREAD_CREATE_DETACHED -      *                              Thread ID is invalid, cannot be joined, -      *                              canceled, or modified -      * -      * -      * DESCRIPTION -      *      This function specifies whether threads created with -      *      'attr' will run detached. -      * -      *      NOTES: -      *              1)      You cannot join or cancel detached threads. -      * -      * RESULTS -      *              0               successfully set detach state, -      *              EINVAL          'attr' or 'detachstate' is invalid -      * -      * ------------------------------------------------------ -      */ -{ -  if (is_attr(attr) != 0) -    { -      return EINVAL; -    } - -  if (detachstate != PTHREAD_CREATE_JOINABLE && -      detachstate != PTHREAD_CREATE_DETACHED) -    { -      return EINVAL; -    } -   -  (*attr)->detachstate = detachstate; -  return 0; -} - - -int -pthread_attr_setscope(pthread_attr_t *attr, int contentionscope) -{ -#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING -  switch (contentionscope) { -  case PTHREAD_SCOPE_SYSTEM: -    (*attr)->contentionscope = contentionscope; -    return 0; -  case PTHREAD_SCOPE_PROCESS: -    return ENOTSUP; -  default: -    return EINVAL; -  } -#else -  return ENOSYS; -#endif -} -  -  -int -pthread_attr_getscope(const pthread_attr_t *attr, int *contentionscope) -{ -#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING -  *contentionscope = (*attr)->contentionscope; -  return 0; -#else -  return ENOSYS; -#endif -} +#include "attr_is_attr.c" +#include "attr_init.c" +#include "attr_destroy.c" +#include "attr_getdetachstate.c" +#include "attr_setdetachstate.c" +#include "attr_getstackaddr.c" +#include "attr_setstackaddr.c" +#include "attr_getstacksize.c" +#include "attr_setstacksize.c" +#include "attr_getscope.c" +#include "attr_setscope.c" diff --git a/attr_destroy.c b/attr_destroy.c new file mode 100644 index 0000000..e4c29d6 --- /dev/null +++ b/attr_destroy.c @@ -0,0 +1,80 @@ +/* + * attr_destroy.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_attr_destroy(pthread_attr_t *attr) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      Destroys a thread attributes object. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_attr_t +      * +      * +      * DESCRIPTION +      *      Destroys a thread attributes object. +      * +      *      NOTES: +      *              1)      Does not affect threads created with 'attr'. +      * +      * RESULTS +      *              0               successfully destroyed attr, +      *              EINVAL          'attr' is invalid. +      * +      * ------------------------------------------------------ +      */ +{ +  if (is_attr(attr) != 0) +    { +      return EINVAL; +    } + +  /* +   * Set the attribute object to a specific invalid value. +   */ +  (*attr)->valid = 0; +  free (*attr); +  *attr = NULL; + +  return 0; +} + diff --git a/attr_getdetachstate.c b/attr_getdetachstate.c new file mode 100644 index 0000000..1e29613 --- /dev/null +++ b/attr_getdetachstate.c @@ -0,0 +1,89 @@ +/* + * attr_getdetachstate.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_attr_getdetachstate(const pthread_attr_t *attr, +                            int *detachstate) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function determines whether threads created with +      *      'attr' will run detached. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_attr_t +      * +      *      detachstate +      *              pointer to an integer into which is returned one +      *              of: +      * +      *              PTHREAD_CREATE_JOINABLE +      *                              Thread ID is valid, must be joined +      * +      *              PTHREAD_CREATE_DETACHED +      *                              Thread ID is invalid, cannot be joined, +      *                              canceled, or modified +      * +      * +      * DESCRIPTION +      *      This function determines whether threads created with +      *      'attr' will run detached. +      * +      *      NOTES: +      *              1)      You cannot join or cancel detached threads. +      * +      * RESULTS +      *              0               successfully retrieved detach state, +      *              EINVAL          'attr' is invalid +      * +      * ------------------------------------------------------ +      */ +{ +  if (is_attr(attr) != 0 || detachstate == NULL) +    { +      *detachstate = PTHREAD_CREATE_DETACHED; +      return EINVAL; +    } + +  *detachstate = (*attr)->detachstate; +  return 0; +} + diff --git a/attr_getscope.c b/attr_getscope.c new file mode 100644 index 0000000..52216da --- /dev/null +++ b/attr_getscope.c @@ -0,0 +1,55 @@ +/* + * attr_getscope.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + +/* ignore warning "unreferenced formal parameter" */ +#ifdef _MSC_VER +#pragma warning( disable : 4100 ) +#endif + +int +pthread_attr_getscope(const pthread_attr_t *attr, int *contentionscope) +{ +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING +  *contentionscope = (*attr)->contentionscope; +  return 0; +#else +  return ENOSYS; +#endif +} + diff --git a/attr_getstackaddr.c b/attr_getstackaddr.c new file mode 100644 index 0000000..79f4c30 --- /dev/null +++ b/attr_getstackaddr.c @@ -0,0 +1,99 @@ +/* + * attr_getstackaddr.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + +/* ignore warning "unreferenced formal parameter" */ +#ifdef _MSC_VER +#pragma warning( disable : 4100 ) +#endif + +int +pthread_attr_getstackaddr(const pthread_attr_t *attr, +                          void **stackaddr) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function determines the address of the stack +      *      on which threads created with 'attr' will run. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_attr_t +      * +      *      stackaddr +      *              pointer into which is returned the stack address. +      * +      * +      * DESCRIPTION +      *      This function determines the address of the stack +      *      on which threads created with 'attr' will run. +      * +      *      NOTES: +      *              1)      Function supported only if this macro is +      *                      defined: +      * +      *                              _POSIX_THREAD_ATTR_STACKADDR +      * +      *              2)      Create only one thread for each stack +      *                      address.. +      * +      * RESULTS +      *              0               successfully retreived stack address, +      *              EINVAL          'attr' is invalid +      *              ENOSYS          function not supported +      * +      * ------------------------------------------------------ +      */ +{ +#if defined( _POSIX_THREAD_ATTR_STACKADDR ) + +  if (is_attr(attr) != 0) +    { +      return EINVAL; +    } + +  *stackaddr = (*attr)->stackaddr; +  return 0; + +#else + +  return ENOSYS; + +#endif /* _POSIX_THREAD_ATTR_STACKADDR */ +} + diff --git a/attr_getstacksize.c b/attr_getstacksize.c new file mode 100644 index 0000000..b9e9b97 --- /dev/null +++ b/attr_getstacksize.c @@ -0,0 +1,102 @@ +/* + * attr_getstacksize.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + +/* ignore warning "unreferenced formal parameter" */ +#ifdef _MSC_VER +#pragma warning( disable : 4100 ) +#endif + +int +pthread_attr_getstacksize(const pthread_attr_t *attr, +                          size_t *stacksize) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function determines the size of the stack on +      *      which threads created with 'attr' will run. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_attr_t +      * +      *      stacksize +      *              pointer to size_t into which is returned the +      *              stack size, in bytes. +      * +      * +      * DESCRIPTION +      *      This function determines the size of the stack on +      *      which threads created with 'attr' will run. +      * +      *      NOTES: +      *              1)      Function supported only if this macro is +      *                      defined: +      * +      *                              _POSIX_THREAD_ATTR_STACKSIZE +      * +      *              2)      Use on newly created attributes object to +      *                      find the default stack size. +      * +      * RESULTS +      *              0               successfully retrieved stack size, +      *              EINVAL          'attr' is invalid +      *              ENOSYS          function not supported +      * +      * ------------------------------------------------------ +      */ +{ +#ifdef _POSIX_THREAD_ATTR_STACKSIZE + +  if (is_attr(attr) != 0) +    { +      return EINVAL; +    } + +  /* Everything is okay. */ +  *stacksize = (*attr)->stacksize; +  return 0; + +#else + +  return ENOSYS; + +#endif /* _POSIX_THREAD_ATTR_STACKSIZE */ + +} + diff --git a/attr_init.c b/attr_init.c new file mode 100644 index 0000000..6ea9234 --- /dev/null +++ b/attr_init.c @@ -0,0 +1,118 @@ +/* + * attr_init.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_attr_init(pthread_attr_t *attr) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      Initializes a thread attributes object with default +      *      attributes. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_attr_t +      * +      * +      * DESCRIPTION +      *      Initializes a thread attributes object with default +      *      attributes. +      * +      *      NOTES: +      *              1)      Used to define thread attributes +      * +      * RESULTS +      *              0               successfully initialized attr, +      *              ENOMEM          insufficient memory for attr. +      * +      * ------------------------------------------------------ +      */ +{ +  pthread_attr_t attr_result; + +  if (attr == NULL) +    { +      /* This is disallowed. */ +      return EINVAL; +    } + +  attr_result = (pthread_attr_t) malloc (sizeof (*attr_result)); + +  if (attr_result == NULL) +    { +      return ENOMEM; +    } + +#ifdef _POSIX_THREAD_ATTR_STACKSIZE +  /* +   * Default to zero size. Unless changed explicitly this +   * will allow Win32 to set the size to that of the +   * main thread. +   */ +  attr_result->stacksize = 0; +#endif + +#ifdef _POSIX_THREAD_ATTR_STACKADDR +  /* FIXME: Set this to something sensible when we support it. */ +  attr_result->stackaddr = NULL; +#endif + +  attr_result->detachstate = PTHREAD_CREATE_JOINABLE; + +#if HAVE_SIGSET_T +  memset(&(attr_result->sigmask), 0, sizeof(sigset_t)); +#endif /* HAVE_SIGSET_T */ + +  /* +   * Win32 sets new threads to THREAD_PRIORITY_NORMAL and +   * not to that of the parent thread. We choose to default to +   * this arrangement. +   */ +  attr_result->param.sched_priority = THREAD_PRIORITY_NORMAL; +  attr_result->inheritsched = PTHREAD_EXPLICIT_SCHED; +  attr_result->contentionscope = PTHREAD_SCOPE_SYSTEM; + +  attr_result->valid = PTW32_ATTR_VALID; + +  *attr = attr_result; + +  return 0; +} + diff --git a/attr_is_attr.c b/attr_is_attr.c new file mode 100644 index 0000000..3d6ef4f --- /dev/null +++ b/attr_is_attr.c @@ -0,0 +1,49 @@ +/* + * attr_is_attr.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + +static INLINE int +is_attr(const pthread_attr_t *attr) +{ +  /* Return 0 if the attr object is valid, non-zero otherwise. */ + +  return (attr == NULL || +          *attr == NULL || +          (*attr)->valid != PTW32_ATTR_VALID); +} + diff --git a/attr_setdetachstate.c b/attr_setdetachstate.c new file mode 100644 index 0000000..8fcfe39 --- /dev/null +++ b/attr_setdetachstate.c @@ -0,0 +1,93 @@ +/* + * attr_setdetachstate.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_attr_setdetachstate(pthread_attr_t *attr, +                            int detachstate) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function specifies whether threads created with +      *      'attr' will run detached. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_attr_t +      * +      *      detachstate +      *              an integer containing one of: +      * +      *              PTHREAD_CREATE_JOINABLE +      *                              Thread ID is valid, must be joined +      * +      *              PTHREAD_CREATE_DETACHED +      *                              Thread ID is invalid, cannot be joined, +      *                              canceled, or modified +      * +      * +      * DESCRIPTION +      *      This function specifies whether threads created with +      *      'attr' will run detached. +      * +      *      NOTES: +      *              1)      You cannot join or cancel detached threads. +      * +      * RESULTS +      *              0               successfully set detach state, +      *              EINVAL          'attr' or 'detachstate' is invalid +      * +      * ------------------------------------------------------ +      */ +{ +  if (is_attr(attr) != 0) +    { +      return EINVAL; +    } + +  if (detachstate != PTHREAD_CREATE_JOINABLE && +      detachstate != PTHREAD_CREATE_DETACHED) +    { +      return EINVAL; +    } + +  (*attr)->detachstate = detachstate; +  return 0; +} + diff --git a/attr_setscope.c b/attr_setscope.c new file mode 100644 index 0000000..7543201 --- /dev/null +++ b/attr_setscope.c @@ -0,0 +1,62 @@ +/* + * attr_setscope.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + +/* ignore warning "unreferenced formal parameter" */ +#ifdef _MSC_VER +#pragma warning( disable : 4100 ) +#endif + +int +pthread_attr_setscope(pthread_attr_t *attr, int contentionscope) +{ +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING +  switch (contentionscope) { +  case PTHREAD_SCOPE_SYSTEM: +    (*attr)->contentionscope = contentionscope; +    return 0; +  case PTHREAD_SCOPE_PROCESS: +    return ENOTSUP; +  default: +    return EINVAL; +  } +#else +  return ENOSYS; +#endif +} + diff --git a/attr_setstackaddr.c b/attr_setstackaddr.c new file mode 100644 index 0000000..f5fc8af --- /dev/null +++ b/attr_setstackaddr.c @@ -0,0 +1,99 @@ +/* + * attr_setstackaddr.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_attr_setstackaddr(pthread_attr_t *attr, +                          void *stackaddr) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      Threads created with 'attr' will run on the stack +      *      starting at 'stackaddr'. +      *      Stack must be at least PTHREAD_STACK_MIN bytes. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_attr_t +      * +      *      stacksize +      *              stack size, in bytes. +      * +      * +      * DESCRIPTION +      *      Threads created with 'attr' will run on the stack +      *      starting at 'stackaddr'. +      *      Stack must be at least PTHREAD_STACK_MIN bytes. +      * +      *      NOTES: +      *              1)      Function supported only if this macro is +      *                      defined: +      * +      *                              _POSIX_THREAD_ATTR_STACKADDR +      * +      *              2)      Create only one thread for each stack +      *                      address.. +      * +      *              3)      Ensure that stackaddr is aligned. +      * +      * RESULTS +      *              0               successfully set stack address, +      *              EINVAL          'attr' is invalid +      *              ENOSYS          function not supported +      * +      * ------------------------------------------------------ +      */ +{ +#if defined( _POSIX_THREAD_ATTR_STACKADDR ) + +  if (is_attr(attr) != 0) +    { +      return EINVAL; +    } + +  (*attr)->stackaddr = stackaddr; +  return 0; + +#else + +  return ENOSYS; + +#endif /* _POSIX_THREAD_ATTR_STACKADDR */ +} + diff --git a/attr_setstacksize.c b/attr_setstacksize.c new file mode 100644 index 0000000..549d6be --- /dev/null +++ b/attr_setstacksize.c @@ -0,0 +1,112 @@ +/* + * attr_setstacksize.c + * + * Description: + * This translation unit implements operations on thread attribute objects. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_attr_setstacksize(pthread_attr_t *attr, +                          size_t stacksize) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function specifies the size of the stack on +      *      which threads created with 'attr' will run. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_attr_t +      * +      *      stacksize +      *              stack size, in bytes. +      * +      * +      * DESCRIPTION +      *      This function specifies the size of the stack on +      *      which threads created with 'attr' will run. +      * +      *      NOTES: +      *              1)      Function supported only if this macro is +      *                      defined: +      * +      *                              _POSIX_THREAD_ATTR_STACKSIZE +      * +      *              2)      Find the default first (using +      *                      pthread_attr_getstacksize), then increase +      *                      by multiplying. +      * +      *              3)      Only use if thread needs more than the +      *                      default. +      * +      * RESULTS +      *              0               successfully set stack size, +      *              EINVAL          'attr' is invalid or stacksize too +      *                              small or too big. +      *              ENOSYS          function not supported +      * +      * ------------------------------------------------------ +      */ +{ +#ifdef _POSIX_THREAD_ATTR_STACKSIZE + +#if PTHREAD_STACK_MIN > 0 + +  /*  Verify that the stack size is within range. */ +  if (stacksize < PTHREAD_STACK_MIN) +    { +      return EINVAL; +    } + +#endif + +  if (is_attr(attr) != 0) +    { +      return EINVAL; +    } + +  /* Everything is okay. */ +  (*attr)->stacksize = stacksize; +  return 0; + +#else + +  return ENOSYS; + +#endif /* _POSIX_THREAD_ATTR_STACKSIZE */ + +} + @@ -4,409 +4,45 @@   * Description:   * This translation unit implements barrier primitives.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h"  #include "implement.h" -int -pthread_barrier_init(pthread_barrier_t * barrier, -                     const pthread_barrierattr_t * attr, -                     unsigned int count) -{ -  pthread_barrier_t b; - -  if (barrier == NULL || count == 0) -    { -      return EINVAL; -    } - -  if (NULL != (b = (pthread_barrier_t) calloc(1, sizeof(*b)))) -    { -      b->pshared = (attr != NULL && *attr != NULL -                    ? (*attr)->pshared -                    : PTHREAD_PROCESS_PRIVATE); - -      b->nCurrentBarrierHeight = b->nInitialBarrierHeight = count; -      b->iStep = 0; - -      /* -       * Two semaphores are used in the same way as two stepping -       * stones might be used in crossing a stream. Once all -       * threads are safely on one stone, the other stone can -       * be moved ahead, and the threads can start moving to it. -       * If some threads decide to eat their lunch before moving -       * then the other threads have to wait. -       */ -      if (0 == sem_init(&(b->semBarrierBreeched[0]), b->pshared, 0)) -        { -          if (0 == sem_init(&(b->semBarrierBreeched[1]), b->pshared, 0)) -            { -              *barrier = b; -              return 0; -            } -          (void) sem_destroy(&(b->semBarrierBreeched[0])); -        } -      (void) free(b); -    } - -  return ENOMEM; -} - -int -pthread_barrier_destroy(pthread_barrier_t *barrier) -{ -  int result = 0; -  pthread_barrier_t b; - -  if (barrier == NULL || *barrier == (pthread_barrier_t) PTW32_OBJECT_INVALID) -    { -      return EINVAL; -    } - -  b = *barrier; -  *barrier = NULL; - -  if (0 == (result = sem_destroy(&(b->semBarrierBreeched[0])))) -    { -      if (0 == (result = sem_destroy(&(b->semBarrierBreeched[1])))) -        { -          (void) free(b); -          return 0; -        } -      (void) sem_init(&(b->semBarrierBreeched[0]), -                        b->pshared, -                        0); -    } - -  *barrier = b; -  return(result); -} - - -int -pthread_barrier_wait(pthread_barrier_t *barrier) -{ -  int result; -  int step; -  pthread_barrier_t b; - -  if (barrier == NULL || *barrier == (pthread_barrier_t) PTW32_OBJECT_INVALID) -    { -      return EINVAL; -    } - -  b = *barrier; -  step = b->iStep; - -  if (0 == InterlockedDecrement((long *) &(b->nCurrentBarrierHeight))) -    { -      /* Must be done before posting the semaphore. */ -      b->nCurrentBarrierHeight = b->nInitialBarrierHeight; - -      /* -       * There is no race condition between the semaphore wait and post -       * because we are using two alternating semas and all threads have -       * entered barrier_wait and checked nCurrentBarrierHeight before this -       * barrier's sema can be posted. Any threads that have not quite -       * entered sem_wait below when the multiple_post has completed -       * will nevertheless continue through the semaphore (barrier) -       * and will not be left stranded. -       */ -      result = (b->nInitialBarrierHeight > 1 -                ? sem_post_multiple(&(b->semBarrierBreeched[step]), -                                    b->nInitialBarrierHeight - 1) -                : 0); -    } -  else -    { -      BOOL switchCancelState; -      int oldCancelState; -      pthread_t self = pthread_self(); - -      /* -       * This routine is not a cancelation point, so temporarily -       * prevent sem_wait() from being one. -       * PTHREAD_CANCEL_ASYNCHRONOUS threads can still be canceled. -       */ -      switchCancelState = (self->cancelType == PTHREAD_CANCEL_DEFERRED && -                           0 == pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, -                                                       &oldCancelState)); - -      result = sem_wait(&(b->semBarrierBreeched[step])); - -      if (switchCancelState) -        { -          (void) pthread_setcancelstate(oldCancelState, NULL); -        } -    } - -  /* -   * The first thread across will be the PTHREAD_BARRIER_SERIAL_THREAD. -   * This also sets up the alternate semaphore as the next barrier. -   */ -  if (0 == result) -    { -      result = ((PTW32_INTERLOCKED_LONG) step == -                ptw32_interlocked_compare_exchange((PTW32_INTERLOCKED_LPLONG) &(b->iStep), -                                                   (PTW32_INTERLOCKED_LONG) (1L - step), -                                                   (PTW32_INTERLOCKED_LONG) step) -                ? PTHREAD_BARRIER_SERIAL_THREAD -                : 0); -    } - -  return(result); -} - - -int -pthread_barrierattr_init (pthread_barrierattr_t * attr) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      Initializes a barrier attributes object with default -      *      attributes. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_barrierattr_t -      * -      * -      * DESCRIPTION -      *      Initializes a barrier attributes object with default -      *      attributes. -      * -      *      NOTES: -      *              1)      Used to define barrier types -      * -      * RESULTS -      *              0               successfully initialized attr, -      *              ENOMEM          insufficient memory for attr. -      * -      * ------------------------------------------------------ -      */ -{ -  pthread_barrierattr_t ba; -  int result = 0; -  -  ba = (pthread_barrierattr_t) calloc (1, sizeof (*ba)); -  -  if (ba == NULL) -    { -      result = ENOMEM; -    } -  else -    { -      ba->pshared = PTHREAD_PROCESS_PRIVATE; -    } - -  *attr = ba; - -  return (result); -}                               /* pthread_barrierattr_init */ -  -  -int -pthread_barrierattr_destroy (pthread_barrierattr_t * attr) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      Destroys a barrier attributes object. The object can -      *      no longer be used. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_barrierattr_t -      * -      * -      * DESCRIPTION -      *      Destroys a barrier attributes object. The object can -      *      no longer be used. -      * -      *      NOTES: -      *              1)      Does not affect barrieres created using 'attr' -      * -      * RESULTS -      *              0               successfully released attr, -      *              EINVAL          'attr' is invalid. -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; -  -  if (attr == NULL || *attr == NULL) -    { -      result = EINVAL; -    } -  else -    { -      pthread_barrierattr_t ba = *attr; -  -      *attr = NULL; -      free (ba); -    } -  -  return (result); -}                               /* pthread_barrierattr_destroy */ - - -int -pthread_barrierattr_getpshared (const pthread_barrierattr_t * attr, -                                int *pshared) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      Determine whether barriers created with 'attr' can be -      *      shared between processes. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_barrierattr_t -      * -      *      pshared -      *              will be set to one of: -      * -      *                      PTHREAD_PROCESS_SHARED -      *                              May be shared if in shared memory -      * -      *                      PTHREAD_PROCESS_PRIVATE -      *                              Cannot be shared. -      * -      * -      * DESCRIPTION -      *      Mutexes creatd with 'attr' can be shared between -      *      processes if pthread_barrier_t variable is allocated -      *      in memory shared by these processes. -      *      NOTES: -      *              1)      pshared barriers MUST be allocated in shared -      *                      memory. -      *              2)      The following macro is defined if shared barriers -      *                      are supported: -      *                              _POSIX_THREAD_PROCESS_SHARED -      * -      * RESULTS -      *              0               successfully retrieved attribute, -      *              EINVAL          'attr' is invalid, -      * -      * ------------------------------------------------------ -      */ -{ -  int result; -  -  if ((attr != NULL && *attr != NULL) && -      (pshared != NULL)) -    { -      *pshared = (*attr)->pshared; -      result = 0; -    } -  else -    { -      result = EINVAL; -    } -  -  return (result); -}                               /* pthread_barrierattr_getpshared */ - +#include "barrier_init.c" +#include "barrier_destroy.c" +#include "barrier_wait.c" +#include "barrier_attr_init.c" +#include "barrier_attr_destroy.c" +#include "barrier_attr_getpshared.c" +#include "barrier_attr_setpshared.c" -int -pthread_barrierattr_setpshared (pthread_barrierattr_t * attr, -                                int pshared) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      Barriers created with 'attr' can be shared between -      *      processes if pthread_barrier_t variable is allocated -      *      in memory shared by these processes. -      * -      * PARAMETERS -      *      attr -      *              pointer to an instance of pthread_barrierattr_t -      * -      *      pshared -      *              must be one of: -      * -      *                      PTHREAD_PROCESS_SHARED -      *                              May be shared if in shared memory -      * -      *                      PTHREAD_PROCESS_PRIVATE -      *                              Cannot be shared. -      * -      * DESCRIPTION -      *      Mutexes creatd with 'attr' can be shared between -      *      processes if pthread_barrier_t variable is allocated -      *      in memory shared by these processes. -      * -      *      NOTES: -      *              1)      pshared barriers MUST be allocated in shared -      *                      memory. -      * -      *              2)      The following macro is defined if shared barriers -      *                      are supported: -      *                              _POSIX_THREAD_PROCESS_SHARED -      * -      * RESULTS -      *              0               successfully set attribute, -      *              EINVAL          'attr' or pshared is invalid, -      *              ENOSYS          PTHREAD_PROCESS_SHARED not supported, -      * -      * ------------------------------------------------------ -      */ -{ -  int result; -  -  if ((attr != NULL && *attr != NULL) && -      ((pshared == PTHREAD_PROCESS_SHARED) || -       (pshared == PTHREAD_PROCESS_PRIVATE))) -    { -      if (pshared == PTHREAD_PROCESS_SHARED) -        { -  -#if !defined( _POSIX_THREAD_PROCESS_SHARED ) -  -          result = ENOSYS; -          pshared = PTHREAD_PROCESS_PRIVATE; -  -#else -  -          result = 0; -  -#endif /* _POSIX_THREAD_PROCESS_SHARED */ -  -        } -      else -        { -          result = 0; -        } -  -      (*attr)->pshared = pshared; -    } -  else -    { -      result = EINVAL; -    } -  -  return (result); -  -}                               /* pthread_barrierattr_setpshared */ diff --git a/barrier_attr_destroy.c b/barrier_attr_destroy.c new file mode 100644 index 0000000..7395ca3 --- /dev/null +++ b/barrier_attr_destroy.c @@ -0,0 +1,84 @@ +/* + * barrier_attr_destroy.c + * + * Description: + * This translation unit implements barrier primitives. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_barrierattr_destroy (pthread_barrierattr_t * attr) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      Destroys a barrier attributes object. The object can +      *      no longer be used. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_barrierattr_t +      * +      * +      * DESCRIPTION +      *      Destroys a barrier attributes object. The object can +      *      no longer be used. +      * +      *      NOTES: +      *              1)      Does not affect barrieres created using 'attr' +      * +      * RESULTS +      *              0               successfully released attr, +      *              EINVAL          'attr' is invalid. +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; + +  if (attr == NULL || *attr == NULL) +    { +      result = EINVAL; +    } +  else +    { +      pthread_barrierattr_t ba = *attr; + +      *attr = NULL; +      free (ba); +    } + +  return (result); +}                               /* pthread_barrierattr_destroy */ + diff --git a/barrier_attr_getpshared.c b/barrier_attr_getpshared.c new file mode 100644 index 0000000..4f7cc64 --- /dev/null +++ b/barrier_attr_getpshared.c @@ -0,0 +1,97 @@ +/* + * barrier_attr_getpshared.c + * + * Description: + * This translation unit implements barrier primitives. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_barrierattr_getpshared (const pthread_barrierattr_t * attr, +                                int *pshared) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      Determine whether barriers created with 'attr' can be +      *      shared between processes. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_barrierattr_t +      * +      *      pshared +      *              will be set to one of: +      * +      *                      PTHREAD_PROCESS_SHARED +      *                              May be shared if in shared memory +      * +      *                      PTHREAD_PROCESS_PRIVATE +      *                              Cannot be shared. +      * +      * +      * DESCRIPTION +      *      Mutexes creatd with 'attr' can be shared between +      *      processes if pthread_barrier_t variable is allocated +      *      in memory shared by these processes. +      *      NOTES: +      *              1)      pshared barriers MUST be allocated in shared +      *                      memory. +      *              2)      The following macro is defined if shared barriers +      *                      are supported: +      *                              _POSIX_THREAD_PROCESS_SHARED +      * +      * RESULTS +      *              0               successfully retrieved attribute, +      *              EINVAL          'attr' is invalid, +      * +      * ------------------------------------------------------ +      */ +{ +  int result; + +  if ((attr != NULL && *attr != NULL) && +      (pshared != NULL)) +    { +      *pshared = (*attr)->pshared; +      result = 0; +    } +  else +    { +      result = EINVAL; +    } + +  return (result); +}                               /* pthread_barrierattr_getpshared */ + diff --git a/barrier_attr_init.c b/barrier_attr_init.c new file mode 100644 index 0000000..ac204fa --- /dev/null +++ b/barrier_attr_init.c @@ -0,0 +1,86 @@ +/* + * barrier_attr_init.c + * + * Description: + * This translation unit implements barrier primitives. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_barrierattr_init (pthread_barrierattr_t * attr) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      Initializes a barrier attributes object with default +      *      attributes. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_barrierattr_t +      * +      * +      * DESCRIPTION +      *      Initializes a barrier attributes object with default +      *      attributes. +      * +      *      NOTES: +      *              1)      Used to define barrier types +      * +      * RESULTS +      *              0               successfully initialized attr, +      *              ENOMEM          insufficient memory for attr. +      * +      * ------------------------------------------------------ +      */ +{ +  pthread_barrierattr_t ba; +  int result = 0; + +  ba = (pthread_barrierattr_t) calloc (1, sizeof (*ba)); + +  if (ba == NULL) +    { +      result = ENOMEM; +    } +  else +    { +      ba->pshared = PTHREAD_PROCESS_PRIVATE; +    } + +  *attr = ba; + +  return (result); +}                               /* pthread_barrierattr_init */ + diff --git a/barrier_attr_setpshared.c b/barrier_attr_setpshared.c new file mode 100644 index 0000000..4ad5c52 --- /dev/null +++ b/barrier_attr_setpshared.c @@ -0,0 +1,120 @@ +/* + * barrier_attr_setpshared.c + * + * Description: + * This translation unit implements barrier primitives. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_barrierattr_setpshared (pthread_barrierattr_t * attr, +                                int pshared) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      Barriers created with 'attr' can be shared between +      *      processes if pthread_barrier_t variable is allocated +      *      in memory shared by these processes. +      * +      * PARAMETERS +      *      attr +      *              pointer to an instance of pthread_barrierattr_t +      * +      *      pshared +      *              must be one of: +      * +      *                      PTHREAD_PROCESS_SHARED +      *                              May be shared if in shared memory +      * +      *                      PTHREAD_PROCESS_PRIVATE +      *                              Cannot be shared. +      * +      * DESCRIPTION +      *      Mutexes creatd with 'attr' can be shared between +      *      processes if pthread_barrier_t variable is allocated +      *      in memory shared by these processes. +      * +      *      NOTES: +      *              1)      pshared barriers MUST be allocated in shared +      *                      memory. +      * +      *              2)      The following macro is defined if shared barriers +      *                      are supported: +      *                              _POSIX_THREAD_PROCESS_SHARED +      * +      * RESULTS +      *              0               successfully set attribute, +      *              EINVAL          'attr' or pshared is invalid, +      *              ENOSYS          PTHREAD_PROCESS_SHARED not supported, +      * +      * ------------------------------------------------------ +      */ +{ +  int result; + +  if ((attr != NULL && *attr != NULL) && +      ((pshared == PTHREAD_PROCESS_SHARED) || +       (pshared == PTHREAD_PROCESS_PRIVATE))) +    { +      if (pshared == PTHREAD_PROCESS_SHARED) +        { + +#if !defined( _POSIX_THREAD_PROCESS_SHARED ) + +          result = ENOSYS; +          pshared = PTHREAD_PROCESS_PRIVATE; + +#else + +          result = 0; + +#endif /* _POSIX_THREAD_PROCESS_SHARED */ + +        } +      else +        { +          result = 0; +        } + +      (*attr)->pshared = pshared; +    } +  else +    { +      result = EINVAL; +    } + +  return (result); + +}                               /* pthread_barrierattr_setpshared */ diff --git a/barrier_destroy.c b/barrier_destroy.c new file mode 100644 index 0000000..c8c2142 --- /dev/null +++ b/barrier_destroy.c @@ -0,0 +1,70 @@ +/* + * barrier_destroy.c + * + * Description: + * This translation unit implements barrier primitives. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_barrier_destroy(pthread_barrier_t *barrier) +{ +  int result = 0; +  pthread_barrier_t b; + +  if (barrier == NULL || *barrier == (pthread_barrier_t) PTW32_OBJECT_INVALID) +    { +      return EINVAL; +    } + +  b = *barrier; +  *barrier = NULL; + +  if (0 == (result = sem_destroy(&(b->semBarrierBreeched[0])))) +    { +      if (0 == (result = sem_destroy(&(b->semBarrierBreeched[1])))) +        { +          (void) free(b); +          return 0; +        } +      (void) sem_init(&(b->semBarrierBreeched[0]), +                        b->pshared, +                        0); +    } + +  *barrier = b; +  return(result); +} + diff --git a/barrier_init.c b/barrier_init.c new file mode 100644 index 0000000..865a82a --- /dev/null +++ b/barrier_init.c @@ -0,0 +1,84 @@ +/* + * barrier_init.c + * + * Description: + * This translation unit implements barrier primitives. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_barrier_init(pthread_barrier_t * barrier, +                     const pthread_barrierattr_t * attr, +                     unsigned int count) +{ +  pthread_barrier_t b; + +  if (barrier == NULL || count == 0) +    { +      return EINVAL; +    } + +  if (NULL != (b = (pthread_barrier_t) calloc(1, sizeof(*b)))) +    { +      b->pshared = (attr != NULL && *attr != NULL +                    ? (*attr)->pshared +                    : PTHREAD_PROCESS_PRIVATE); + +      b->nCurrentBarrierHeight = b->nInitialBarrierHeight = count; +      b->iStep = 0; + +      /* +       * Two semaphores are used in the same way as two stepping +       * stones might be used in crossing a stream. Once all +       * threads are safely on one stone, the other stone can +       * be moved ahead, and the threads can start moving to it. +       * If some threads decide to eat their lunch before moving +       * then the other threads have to wait. +       */ +      if (0 == sem_init(&(b->semBarrierBreeched[0]), b->pshared, 0)) +        { +          if (0 == sem_init(&(b->semBarrierBreeched[1]), b->pshared, 0)) +            { +              *barrier = b; +              return 0; +            } +          (void) sem_destroy(&(b->semBarrierBreeched[0])); +        } +      (void) free(b); +    } + +  return ENOMEM; +} + diff --git a/barrier_wait.c b/barrier_wait.c new file mode 100644 index 0000000..07ea32f --- /dev/null +++ b/barrier_wait.c @@ -0,0 +1,114 @@ +/* + * barrier_wait.c + * + * Description: + * This translation unit implements barrier primitives. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_barrier_wait(pthread_barrier_t *barrier) +{ +  int result; +  int step; +  pthread_barrier_t b; + +  if (barrier == NULL || *barrier == (pthread_barrier_t) PTW32_OBJECT_INVALID) +    { +      return EINVAL; +    } + +  b = *barrier; +  step = b->iStep; + +  if (0 == InterlockedDecrement((long *) &(b->nCurrentBarrierHeight))) +    { +      /* Must be done before posting the semaphore. */ +      b->nCurrentBarrierHeight = b->nInitialBarrierHeight; + +      /* +       * There is no race condition between the semaphore wait and post +       * because we are using two alternating semas and all threads have +       * entered barrier_wait and checked nCurrentBarrierHeight before this +       * barrier's sema can be posted. Any threads that have not quite +       * entered sem_wait below when the multiple_post has completed +       * will nevertheless continue through the semaphore (barrier) +       * and will not be left stranded. +       */ +      result = (b->nInitialBarrierHeight > 1 +                ? sem_post_multiple(&(b->semBarrierBreeched[step]), +                                    b->nInitialBarrierHeight - 1) +                : 0); +    } +  else +    { +      BOOL switchCancelState; +      int oldCancelState; +      pthread_t self = pthread_self(); + +      /* +       * This routine is not a cancelation point, so temporarily +       * prevent sem_wait() from being one. +       * PTHREAD_CANCEL_ASYNCHRONOUS threads can still be canceled. +       */ +      switchCancelState = (self->cancelType == PTHREAD_CANCEL_DEFERRED && +                           0 == pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, +                                                       &oldCancelState)); + +      result = sem_wait(&(b->semBarrierBreeched[step])); + +      if (switchCancelState) +        { +          (void) pthread_setcancelstate(oldCancelState, NULL); +        } +    } + +  /* +   * The first thread across will be the PTHREAD_BARRIER_SERIAL_THREAD. +   * This also sets up the alternate semaphore as the next barrier. +   */ +  if (0 == result) +    { +      result = ((PTW32_INTERLOCKED_LONG) step == +                ptw32_interlocked_compare_exchange((PTW32_INTERLOCKED_LPLONG) &(b->iStep), +                                                   (PTW32_INTERLOCKED_LONG) (1L - step), +                                                   (PTW32_INTERLOCKED_LONG) step) +                ? PTHREAD_BARRIER_SERIAL_THREAD +                : 0); +    } + +  return(result); +} + @@ -4,422 +4,42 @@   * Description:   * POSIX thread functions related to thread cancellation.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *	Pthreads-win32 - POSIX Threads Library for Win32 + *	Copyright(C) 1998 John E. Bossom + *	Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *	Contact Email: rpj@ise.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 "pthread.h"  #include "implement.h" -#if defined(_M_IX86) || defined(_X86_) -#define PROGCTR(Context)  ((Context).Eip) -#endif -  -#if defined(_MIPS_) -#define PROGCTR(Context)  ((Context).Fir) -#endif -  -#if defined(_ALPHA_) -#define PROGCTR(Context)  ((Context).Fir) -#endif - -#if defined(_PPC_) -#define PROGCTR(Context)  ((Context).Iar) -#endif - -#if !defined(PROGCTR) -#error Module contains CPU-specific code; modify and recompile. -#endif - - -static INLINE void -ptw32_cancel_self(void) -{ -  ptw32_throw(PTW32_EPS_CANCEL); - -  /* Never reached */ -} - - -#if 0 -/* - * ptw32_cancel_thread implements asynchronous cancellation. - */ -static INLINE void -ptw32_cancel_thread(pthread_t thread) -{ -  HANDLE threadH = thread->threadH; - -  SuspendThread(threadH); - -  if (WaitForSingleObject(threadH, 0) == WAIT_TIMEOUT ) -    { -      CONTEXT context; - -      (void) pthread_mutex_lock(&thread->cancelLock); - -      thread->state = PThreadStateCanceling; -      thread->cancelState = PTHREAD_CANCEL_DISABLE; -      context.ContextFlags = CONTEXT_CONTROL; -      GetThreadContext(threadH, &context); -      PROGCTR(context) = (DWORD) ptw32_cancel_self; -      SetThreadContext(threadH, &context); - -      (void) pthread_mutex_unlock(&thread->cancelLock); -      ResumeThread(threadH); -    } -} -#endif - -int -pthread_setcancelstate (int state, int *oldstate) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function atomically sets the calling thread's -      *      cancelability state to 'state' and returns the previous -      *      cancelability state at the location referenced by -      *      'oldstate' -      * -      * PARAMETERS -      *      state, -      *      oldstate -      * 	     PTHREAD_CANCEL_ENABLE -      * 		     cancellation is enabled, -      * -      * 	     PTHREAD_CANCEL_DISABLE -      * 		     cancellation is disabled -      * -      * -      * DESCRIPTION -      *      This function atomically sets the calling thread's -      *      cancelability state to 'state' and returns the previous -      *      cancelability state at the location referenced by -      *      'oldstate'. -      * -      *      NOTES: -      *      1)      Use to disable cancellation around 'atomic' code that -      * 	     includes cancellation points -      * -      * COMPATIBILITY ADDITIONS -      *      If 'oldstate' is NULL then the previous state is not returned -      *      but the function still succeeds. (Solaris) -      * -      * RESULTS -      * 	     0		     successfully set cancelability type, -      * 	     EINVAL	     'state' is invalid -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; -  pthread_t self = pthread_self(); - -  if (self == NULL -      || (state != PTHREAD_CANCEL_ENABLE -	  && state != PTHREAD_CANCEL_DISABLE)) -    { -      return EINVAL; -    } - -  /* -   * Lock for async-cancel safety. -   */ -  (void) pthread_mutex_lock(&self->cancelLock); - -  if (oldstate != NULL) -    { -      *oldstate = self->cancelState; -    } - -  self->cancelState = state; - -  /* -   * Check if there is a pending asynchronous cancel -   */ -  if (state == PTHREAD_CANCEL_ENABLE -      && self->cancelType == PTHREAD_CANCEL_ASYNCHRONOUS -      && WaitForSingleObject(self->cancelEvent, 0) == WAIT_OBJECT_0) -    { -      self->state = PThreadStateCanceling; -      self->cancelState = PTHREAD_CANCEL_DISABLE; -      ResetEvent(self->cancelEvent); -      (void) pthread_mutex_unlock(&self->cancelLock); -      ptw32_throw(PTW32_EPS_CANCEL); - -      /* Never reached */ -    } - -  (void) pthread_mutex_unlock(&self->cancelLock); - -  return (result); - -}				/* pthread_setcancelstate */ - - -int -pthread_setcanceltype (int type, int *oldtype) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function atomically sets the calling thread's -      *      cancelability type to 'type' and returns the previous -      *      cancelability type at the location referenced by -      *      'oldtype' -      * -      * PARAMETERS -      *      type, -      *      oldtype -      * 	     PTHREAD_CANCEL_DEFERRED -      * 		     only deferred cancelation is allowed, -      * -      * 	     PTHREAD_CANCEL_ASYNCHRONOUS -      * 		     Asynchronous cancellation is allowed -      * -      * -      * DESCRIPTION -      *      This function atomically sets the calling thread's -      *      cancelability type to 'type' and returns the previous -      *      cancelability type at the location referenced by -      *      'oldtype' -      * -      *      NOTES: -      *      1)      Use with caution; most code is not safe for use -      * 	     with asynchronous cancelability. -      * -      * COMPATIBILITY ADDITIONS -      *      If 'oldtype' is NULL then the previous type is not returned -      *      but the function still succeeds. (Solaris) -      * -      * RESULTS -      * 	     0		     successfully set cancelability type, -      * 	     EINVAL	     'type' is invalid -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; -  pthread_t self = pthread_self(); - -  if (self == NULL -      || (type != PTHREAD_CANCEL_DEFERRED -	  && type != PTHREAD_CANCEL_ASYNCHRONOUS)) -    { -      return EINVAL; -    } - -  /* -   * Lock for async-cancel safety. -   */ -  (void) pthread_mutex_lock(&self->cancelLock); - -  if (oldtype != NULL) -    { -      *oldtype = self->cancelType; -    } - -  self->cancelType = type; - -  /* -   * Check if there is a pending asynchronous cancel -   */ -  if (self->cancelState == PTHREAD_CANCEL_ENABLE -      && type == PTHREAD_CANCEL_ASYNCHRONOUS -      && WaitForSingleObject(self->cancelEvent, 0) == WAIT_OBJECT_0) -    { -      self->state = PThreadStateCanceling; -      self->cancelState = PTHREAD_CANCEL_DISABLE; -      ResetEvent(self->cancelEvent); -      (void) pthread_mutex_unlock(&self->cancelLock); -      ptw32_throw(PTW32_EPS_CANCEL); - -      /* Never reached */ -    } - -  (void) pthread_mutex_unlock(&self->cancelLock); - -  return (result); - -}				/* pthread_setcanceltype */ - -void -pthread_testcancel (void) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function creates a deferred cancellation point -      *      in the calling thread. The call has no effect if the -      *      current cancelability state is -      * 	     PTHREAD_CANCEL_DISABLE -      * -      * PARAMETERS -      *      N/A -      * -      * -      * DESCRIPTION -      *      This function creates a deferred cancellation point -      *      in the calling thread. The call has no effect if the -      *      current cancelability state is -      * 	     PTHREAD_CANCEL_DISABLE -      * -      *      NOTES: -      *      1)      Cancellation is asynchronous. Use pthread_join -      * 	     to wait for termination of thread if necessary -      * -      * RESULTS -      * 	     N/A -      * -      * ------------------------------------------------------ -      */ -{ -  pthread_t self = pthread_self(); - -  (void) pthread_mutex_lock(&self->cancelLock); - -  if (self != NULL -      && self->cancelState != PTHREAD_CANCEL_DISABLE -      && WaitForSingleObject (self->cancelEvent, 0) == WAIT_OBJECT_0 -      ) -    { -      /* -       * Canceling! -       */ -      self->state = PThreadStateCanceling; -      self->cancelState = PTHREAD_CANCEL_DISABLE; -      (void) pthread_mutex_unlock(&self->cancelLock); -      ptw32_throw(PTW32_EPS_CANCEL); -    } - -  (void) pthread_mutex_unlock(&self->cancelLock); -}				/* pthread_testcancel */ - -int -pthread_cancel (pthread_t thread) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function requests cancellation of 'thread'. -      * -      * PARAMETERS -      *      thread -      * 	     reference to an instance of pthread_t -      * -      * -      * DESCRIPTION -      *      This function requests cancellation of 'thread'. -      *      NOTE: cancellation is asynchronous; use pthread_join to -      * 	       wait for termination of 'thread' if necessary. -      * -      * RESULTS -      * 	     0		     successfully requested cancellation, -      * 	     ESRCH	     no thread found corresponding to 'thread', -      * 	     ENOMEM	     implicit self thread create failed. -      * ------------------------------------------------------ -      */ -{ -  int result; -  int cancel_self; -  pthread_t self; - -  if (thread == NULL ) -    { -      return ESRCH; -    } - -  result = 0; -  if ((self = pthread_self()) == NULL) -    { -      return ENOMEM; -    }; - -  /* -   * FIXME!! -   * -   * Can a thread cancel itself? -   * -   * The standard doesn't -   * specify an error to be returned if the target -   * thread is itself. -   * -   * If it may, then we need to ensure that a thread can't -   * deadlock itself trying to cancel itself asyncronously -   * (pthread_cancel is required to be an async-cancel -   * safe function). -   */ -  cancel_self = pthread_equal(thread, self); - -  /* -   * Lock for async-cancel safety. -   */ -  (void) pthread_mutex_lock(&thread->cancelLock); - -  if (thread->cancelType == PTHREAD_CANCEL_ASYNCHRONOUS -      && thread->cancelState == PTHREAD_CANCEL_ENABLE -      && thread->state < PThreadStateCanceling ) -    { -      if (cancel_self) -	{ -	  thread->state = PThreadStateCanceling; -	  thread->cancelState = PTHREAD_CANCEL_DISABLE; - -	  (void) pthread_mutex_unlock(&thread->cancelLock); -	  ptw32_throw(PTW32_EPS_CANCEL); - -	  /* Never reached */ -	} -      else -	{ -	  HANDLE threadH = thread->threadH; - -	  SuspendThread(threadH); - -	  if (WaitForSingleObject(threadH, 0) == WAIT_TIMEOUT ) -	    { -	      CONTEXT context; - -	      thread->state = PThreadStateCanceling; -	      thread->cancelState = PTHREAD_CANCEL_DISABLE; -	      context.ContextFlags = CONTEXT_CONTROL; -	      GetThreadContext(threadH, &context); -	      PROGCTR(context) = (DWORD) ptw32_cancel_self; -	      SetThreadContext(threadH, &context); -	      (void) pthread_mutex_unlock(&thread->cancelLock); -	      ResumeThread(threadH); -	    } -	} -    } -  else -    { -      /* -       * Set for deferred cancellation. -       */ -      if ( thread->state >= PThreadStateCanceling -	   || !SetEvent (thread->cancelEvent)) -	{ -	  result = ESRCH; -	} - -      (void) pthread_mutex_unlock(&thread->cancelLock); -    } +#include "cancel_setcancelstate.c" +#include "cancel_setcanceltype.c" +#include "cancel_testcancel.c" +#include "cancel_cancel.c" -  return (result); -} diff --git a/cancel_cancel.c b/cancel_cancel.c new file mode 100644 index 0000000..c0ab552 --- /dev/null +++ b/cancel_cancel.c @@ -0,0 +1,180 @@ +/* + * cancel_cancel.c + * + * Description: + * POSIX thread functions related to thread cancellation. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +#if defined(_M_IX86) || defined(_X86_) +#define PTW32_PROGCTR(Context)  ((Context).Eip) +#endif + +#if defined(_MIPS_) +#define PTW32_PROGCTR(Context)  ((Context).Fir) +#endif + +#if defined(_ALPHA_) +#define PTW32_PROGCTR(Context)  ((Context).Fir) +#endif + +#if defined(_PPC_) +#define PTW32_PROGCTR(Context)  ((Context).Iar) +#endif + +#if !defined(PTW32_PROGCTR) +#error Module contains CPU-specific code; modify and recompile. +#endif + +static INLINE void +ptw32_cancel_self(void) +{ +  ptw32_throw(PTW32_EPS_CANCEL); + +  /* Never reached */ +} + +int +pthread_cancel (pthread_t thread) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function requests cancellation of 'thread'. +      * +      * PARAMETERS +      *      thread +      *              reference to an instance of pthread_t +      * +      * +      * DESCRIPTION +      *      This function requests cancellation of 'thread'. +      *      NOTE: cancellation is asynchronous; use pthread_join to +      *                wait for termination of 'thread' if necessary. +      * +      * RESULTS +      *              0               successfully requested cancellation, +      *              ESRCH           no thread found corresponding to 'thread', +      *              ENOMEM          implicit self thread create failed. +      * ------------------------------------------------------ +      */ +{ +  int result; +  int cancel_self; +  pthread_t self; + +  if (thread == NULL ) +    { +      return ESRCH; +    } + +  result = 0; +  if ((self = pthread_self()) == NULL) +    { +      return ENOMEM; +    }; + +  /* +   * FIXME!! +   * +   * Can a thread cancel itself? +   * +   * The standard doesn't +   * specify an error to be returned if the target +   * thread is itself. +   * +   * If it may, then we need to ensure that a thread can't +   * deadlock itself trying to cancel itself asyncronously +   * (pthread_cancel is required to be an async-cancel +   * safe function). +   */ +  cancel_self = pthread_equal(thread, self); + +  /* +   * Lock for async-cancel safety. +   */ +  (void) pthread_mutex_lock(&thread->cancelLock); + +  if (thread->cancelType == PTHREAD_CANCEL_ASYNCHRONOUS +      && thread->cancelState == PTHREAD_CANCEL_ENABLE +      && thread->state < PThreadStateCanceling ) +    { +      if (cancel_self) +        { +          thread->state = PThreadStateCanceling; +          thread->cancelState = PTHREAD_CANCEL_DISABLE; + +          (void) pthread_mutex_unlock(&thread->cancelLock); +          ptw32_throw(PTW32_EPS_CANCEL); + +          /* Never reached */ +        } +      else +        { +          HANDLE threadH = thread->threadH; + +          SuspendThread(threadH); + +          if (WaitForSingleObject(threadH, 0) == WAIT_TIMEOUT ) +            { +              CONTEXT context; + +              thread->state = PThreadStateCanceling; +              thread->cancelState = PTHREAD_CANCEL_DISABLE; +              context.ContextFlags = CONTEXT_CONTROL; +              GetThreadContext(threadH, &context); +              PTW32_PROGCTR(context) = (DWORD) ptw32_cancel_self; +              SetThreadContext(threadH, &context); +              (void) pthread_mutex_unlock(&thread->cancelLock); +              ResumeThread(threadH); +            } +        } +    } +  else +    { +      /* +       * Set for deferred cancellation. +       */ +      if ( thread->state >= PThreadStateCanceling +           || !SetEvent (thread->cancelEvent)) +        { +          result = ESRCH; +        } + +      (void) pthread_mutex_unlock(&thread->cancelLock); +    } + +  return (result); +} + diff --git a/cancel_setcancelstate.c b/cancel_setcancelstate.c new file mode 100644 index 0000000..8eaa720 --- /dev/null +++ b/cancel_setcancelstate.c @@ -0,0 +1,125 @@ +/* + * cancel_setcancelstate.c + * + * Description: + * POSIX thread functions related to thread cancellation. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_setcancelstate (int state, int *oldstate) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function atomically sets the calling thread's +      *      cancelability state to 'state' and returns the previous +      *      cancelability state at the location referenced by +      *      'oldstate' +      * +      * PARAMETERS +      *      state, +      *      oldstate +      *              PTHREAD_CANCEL_ENABLE +      *                      cancellation is enabled, +      * +      *              PTHREAD_CANCEL_DISABLE +      *                      cancellation is disabled +      * +      * +      * DESCRIPTION +      *      This function atomically sets the calling thread's +      *      cancelability state to 'state' and returns the previous +      *      cancelability state at the location referenced by +      *      'oldstate'. +      * +      *      NOTES: +      *      1)      Use to disable cancellation around 'atomic' code that +      *              includes cancellation points +      * +      * COMPATIBILITY ADDITIONS +      *      If 'oldstate' is NULL then the previous state is not returned +      *      but the function still succeeds. (Solaris) +      * +      * RESULTS +      *              0               successfully set cancelability type, +      *              EINVAL          'state' is invalid +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; +  pthread_t self = pthread_self(); + +  if (self == NULL +      || (state != PTHREAD_CANCEL_ENABLE +          && state != PTHREAD_CANCEL_DISABLE)) +    { +      return EINVAL; +    } + +  /* +   * Lock for async-cancel safety. +   */ +  (void) pthread_mutex_lock(&self->cancelLock); + +  if (oldstate != NULL) +    { +      *oldstate = self->cancelState; +    } + +  self->cancelState = state; + +  /* +   * Check if there is a pending asynchronous cancel +   */ +  if (state == PTHREAD_CANCEL_ENABLE +      && self->cancelType == PTHREAD_CANCEL_ASYNCHRONOUS +      && WaitForSingleObject(self->cancelEvent, 0) == WAIT_OBJECT_0) +    { +      self->state = PThreadStateCanceling; +      self->cancelState = PTHREAD_CANCEL_DISABLE; +      ResetEvent(self->cancelEvent); +      (void) pthread_mutex_unlock(&self->cancelLock); +      ptw32_throw(PTW32_EPS_CANCEL); + +      /* Never reached */ +    } + +  (void) pthread_mutex_unlock(&self->cancelLock); + +  return (result); + +}                               /* pthread_setcancelstate */ + diff --git a/cancel_setcanceltype.c b/cancel_setcanceltype.c new file mode 100644 index 0000000..58b31da --- /dev/null +++ b/cancel_setcanceltype.c @@ -0,0 +1,125 @@ +/* + * cancel_setcanceltype.c + * + * Description: + * POSIX thread functions related to thread cancellation. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +int +pthread_setcanceltype (int type, int *oldtype) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function atomically sets the calling thread's +      *      cancelability type to 'type' and returns the previous +      *      cancelability type at the location referenced by +      *      'oldtype' +      * +      * PARAMETERS +      *      type, +      *      oldtype +      *              PTHREAD_CANCEL_DEFERRED +      *                      only deferred cancelation is allowed, +      * +      *              PTHREAD_CANCEL_ASYNCHRONOUS +      *                      Asynchronous cancellation is allowed +      * +      * +      * DESCRIPTION +      *      This function atomically sets the calling thread's +      *      cancelability type to 'type' and returns the previous +      *      cancelability type at the location referenced by +      *      'oldtype' +      * +      *      NOTES: +      *      1)      Use with caution; most code is not safe for use +      *              with asynchronous cancelability. +      * +      * COMPATIBILITY ADDITIONS +      *      If 'oldtype' is NULL then the previous type is not returned +      *      but the function still succeeds. (Solaris) +      * +      * RESULTS +      *              0               successfully set cancelability type, +      *              EINVAL          'type' is invalid +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; +  pthread_t self = pthread_self(); + +  if (self == NULL +      || (type != PTHREAD_CANCEL_DEFERRED +          && type != PTHREAD_CANCEL_ASYNCHRONOUS)) +    { +      return EINVAL; +    } + +  /* +   * Lock for async-cancel safety. +   */ +  (void) pthread_mutex_lock(&self->cancelLock); + +  if (oldtype != NULL) +    { +      *oldtype = self->cancelType; +    } + +  self->cancelType = type; + +  /* +   * Check if there is a pending asynchronous cancel +   */ +  if (self->cancelState == PTHREAD_CANCEL_ENABLE +      && type == PTHREAD_CANCEL_ASYNCHRONOUS +      && WaitForSingleObject(self->cancelEvent, 0) == WAIT_OBJECT_0) +    { +      self->state = PThreadStateCanceling; +      self->cancelState = PTHREAD_CANCEL_DISABLE; +      ResetEvent(self->cancelEvent); +      (void) pthread_mutex_unlock(&self->cancelLock); +      ptw32_throw(PTW32_EPS_CANCEL); + +      /* Never reached */ +    } + +  (void) pthread_mutex_unlock(&self->cancelLock); + +  return (result); + +}                               /* pthread_setcanceltype */ + diff --git a/cancel_testcancel.c b/cancel_testcancel.c new file mode 100644 index 0000000..4086565 --- /dev/null +++ b/cancel_testcancel.c @@ -0,0 +1,91 @@ +/* + * cancel_testcancel.c + * + * Description: + * POSIX thread functions related to thread cancellation. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + * + *      Contact Email: rpj@ise.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 "pthread.h" +#include "implement.h" + + +void +pthread_testcancel (void) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function creates a deferred cancellation point +      *      in the calling thread. The call has no effect if the +      *      current cancelability state is +      *              PTHREAD_CANCEL_DISABLE +      * +      * PARAMETERS +      *      N/A +      * +      * +      * DESCRIPTION +      *      This function creates a deferred cancellation point +      *      in the calling thread. The call has no effect if the +      *      current cancelability state is +      *              PTHREAD_CANCEL_DISABLE +      * +      *      NOTES: +      *      1)      Cancellation is asynchronous. Use pthread_join +      *              to wait for termination of thread if necessary +      * +      * RESULTS +      *              N/A +      * +      * ------------------------------------------------------ +      */ +{ +  pthread_t self = pthread_self(); + +  (void) pthread_mutex_lock(&self->cancelLock); + +  if (self != NULL +      && self->cancelState != PTHREAD_CANCEL_DISABLE +      && WaitForSingleObject (self->cancelEvent, 0) == WAIT_OBJECT_0 +      ) +    { +      /* +       * Canceling! +       */ +      self->state = PThreadStateCanceling; +      self->cancelState = PTHREAD_CANCEL_DISABLE; +      (void) pthread_mutex_unlock(&self->cancelLock); +      ptw32_throw(PTW32_EPS_CANCEL); +    } + +  (void) pthread_mutex_unlock(&self->cancelLock); +}                               /* pthread_testcancel */ + @@ -6,26 +6,34 @@   * with cleaning up threads.   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" @@ -5,26 +5,34 @@   * This translation unit implements condition variables and their primitives.   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   *   * ------------------------------------------------------------- @@ -1,8 +1,11 @@ -/* config.h.in  Generated automatically from configure.in by autoheader.  */ +/* config.h  */  #ifndef PTW32_CONFIG_H  #define PTW32_CONFIG_H +/* We're building the pthreads-win32 library */ +#define PTW32_BUILD +  /* Do we know about the C type sigset_t? */  #undef HAVE_SIGSET_T @@ -39,8 +42,8 @@  /* Define if you have the timespec struct */  #undef HAVE_STRUCT_TIMESPEC -/*  - * Target specific groups  +/* + * Target specific groups   */  #ifdef WINCE  #define NEED_DUPLICATEHANDLE @@ -65,4 +68,4 @@  #define HAVE_MODE_T  #endif -#endif
\ No newline at end of file +#endif @@ -5,26 +5,34 @@   * This translation unit implements routines associated with spawning a new   * thread.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *	Pthreads-win32 - POSIX Threads Library for Win32 + *	Copyright(C) 1998 John E. Bossom + *	Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *	Contact Email: rpj@ise.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 "pthread.h" @@ -46,16 +54,16 @@ pthread_create (pthread_t * tid,        *        * PARAMETERS        *      tid -      *              pointer to an instance of pthread_t +      * 	     pointer to an instance of pthread_t        *        *      attr -      *              optional pointer to an instance of pthread_attr_t +      * 	     optional pointer to an instance of pthread_attr_t        *        *      start -      *              pointer to the starting routine for the new thread +      * 	     pointer to the starting routine for the new thread        *        *      arg -      *              optional parameter passed to 'start' +      * 	     optional parameter passed to 'start'        *        *        * DESCRIPTION @@ -66,9 +74,9 @@ pthread_create (pthread_t * tid,        *      as 'tid'        *        * RESULTS -      *              0               successfully created thread, -      *              EINVAL          attr invalid, -      *              EAGAIN          insufficient resources. +      * 	     0		     successfully created thread, +      * 	     EINVAL	     attr invalid, +      * 	     EAGAIN	     insufficient resources.        *        * ------------------------------------------------------        */ @@ -85,18 +93,6 @@ pthread_create (pthread_t * tid,        goto FAIL0;      } -  thread->cancelEvent = -    CreateEvent ( -                 0, -                 (int) TRUE,	/* manualReset  */ -                 (int) FALSE,	/* setSignaled  */ -                 NULL); - -  if (thread->cancelEvent == NULL) -    { -      goto FAIL0; -    } -    if ((parms = (ThreadParms *) malloc (sizeof (*parms))) == NULL)      {        goto FAIL0; @@ -145,12 +141,12 @@ pthread_create (pthread_t * tid,    thread->threadH = threadH = (HANDLE)      _beginthreadex ( -                    (void *) NULL,	/* No security info             */ -                    (unsigned) stackSize,	/* default stack size   */ -                    ptw32_threadStart, -                    parms, -                    (unsigned) CREATE_SUSPENDED, -                    (unsigned *) &(thread->thread)); +		    (void *) NULL,	/* No security info		*/ +		    (unsigned) stackSize,	/* default stack size	*/ +		    ptw32_threadStart, +		    parms, +		    (unsigned) CREATE_SUSPENDED, +		    (unsigned *) &(thread->thread));    if (threadH != 0)      { @@ -162,17 +158,17 @@ pthread_create (pthread_t * tid,         * PTHREAD_EXPLICIT_SCHED and priority THREAD_PRIORITY_NORMAL.         */        if (attr != NULL && *attr != NULL) -        { -          (void) SetThreadPriority(threadH, -                                   PTHREAD_INHERIT_SCHED == (*attr)->inheritsched -                                   ? GetThreadPriority(GetCurrentThread()) -                                   : (*attr)->param.sched_priority ); -        } +	{ +	  (void) SetThreadPriority(threadH, +				   PTHREAD_INHERIT_SCHED == (*attr)->inheritsched +				   ? GetThreadPriority(GetCurrentThread()) +				   : (*attr)->param.sched_priority ); +	}        if (run) -        { -          ResumeThread(threadH); -        } +	{ +	  ResumeThread(threadH); +	}      }  #else /* __MINGW32__ && ! __MSVCRT__ */ @@ -185,9 +181,9 @@ pthread_create (pthread_t * tid,    thread->threadH = threadH = (HANDLE)      _beginthread ( -                  ptw32_threadStart, -                  (unsigned) stackSize,	/* default stack size   */ -                  parms); +		  ptw32_threadStart, +		  (unsigned) stackSize, /* default stack size	*/ +		  parms);    /*     * Make the return code match _beginthreadex's. @@ -199,14 +195,14 @@ pthread_create (pthread_t * tid,    else      {        if (! run) -        { -          /*  -           * beginthread does not allow for create flags, so we do it now. -           * Note that beginthread itself creates the thread in SUSPENDED -           * mode, and then calls ResumeThread to start it. -           */ -          SuspendThread (threadH); -        } +	{ +	  /*  +	   * beginthread does not allow for create flags, so we do it now. +	   * Note that beginthread itself creates the thread in SUSPENDED +	   * mode, and then calls ResumeThread to start it. +	   */ +	  SuspendThread (threadH); +	}        /*         * PTHREAD_EXPLICIT_SCHED is the default because Win32 threads @@ -216,12 +212,12 @@ pthread_create (pthread_t * tid,         * PTHREAD_EXPLICIT_SCHED and priority THREAD_PRIORITY_NORMAL.         */        if (attr != NULL && *attr != NULL) -        { -          (void) SetThreadPriority(threadH, -                                   PTHREAD_INHERIT_SCHED == (*attr)->inheritsched -                                   ? GetThreadPriority(GetCurrentThread()) -                                   : (*attr)->param.sched_priority ); -        } +	{ +	  (void) SetThreadPriority(threadH, +				   PTHREAD_INHERIT_SCHED == (*attr)->inheritsched +				   ? GetThreadPriority(GetCurrentThread()) +				   : (*attr)->param.sched_priority ); +	}      }    (void) pthread_mutex_unlock(&thread->cancelLock); @@ -4,26 +4,34 @@   * Description:   * This translation unit implements DLL initialisation.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" @@ -5,26 +5,34 @@   * This translation unit implements routines associated with spawning a new   * thread.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */  #if (! defined(HAVE_ERRNO)) && (! defined(_REENTRANT)) && (! defined(_MT)) @@ -5,26 +5,34 @@   * This translation unit implements routines associated with exiting from   * a thread.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" @@ -4,26 +4,34 @@   * Description:   * Implementation of fork() for POSIX threads.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */ @@ -5,26 +5,34 @@   * This translation unit instantiates data associated with the implementation   * as a whole.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" diff --git a/implement.h b/implement.h index 1d2076b..c6cef70 100644 --- a/implement.h +++ b/implement.h @@ -5,26 +5,34 @@   *   * Keeps all the internals out of pthread.h   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */  #ifndef _IMPLEMENT_H @@ -4,26 +4,34 @@   * Description:   * This translation unit implements miscellaneous thread functions.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *	Pthreads-win32 - POSIX Threads Library for Win32 + *	Copyright(C) 1998 John E. Bossom + *	Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *	Contact Email: rpj@ise.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 "pthread.h" @@ -32,40 +40,40 @@  int  pthread_once ( -               pthread_once_t * once_control, -               void (*init_routine) (void) +	       pthread_once_t * once_control, +	       void (*init_routine) (void)  ) -        /* -         * ------------------------------------------------------ -         * DOCPUBLIC -         *      If any thread in a process  with  a  once_control  parameter -         *      makes  a  call to pthread_once(), the first call will summon -         *      the init_routine(), but  subsequent  calls  will  not. The -         *      once_control  parameter  determines  whether  the associated -         *      initialization routine has been called.  The  init_routine() -         *      is complete upon return of pthread_once(). -         *      This function guarantees that one and only one thread -         *      executes the initialization routine, init_routine when -         *      access is controlled by the pthread_once_t control -         *      key. -         * -         * PARAMETERS -         *      once_control -         *              pointer to an instance of pthread_once_t -         * -         *      init_routine -         *              pointer to an initialization routine -         * -         * -         * DESCRIPTION -         *      See above. -         * -         * RESULTS -         *              0               success, -         *              EINVAL          once_control or init_routine is NULL -         * -         * ------------------------------------------------------ -         */ +	/* +	 * ------------------------------------------------------ +	 * DOCPUBLIC +	 *	If any thread in a process  with  a  once_control  parameter +	 *	makes  a  call to pthread_once(), the first call will summon +	 *	the init_routine(), but  subsequent  calls  will  not. The +	 *	once_control  parameter  determines  whether  the associated +	 *	initialization routine has been called.  The  init_routine() +	 *	is complete upon return of pthread_once(). +	 *	This function guarantees that one and only one thread +	 *	executes the initialization routine, init_routine when +	 *	access is controlled by the pthread_once_t control +	 *	key. +	 * +	 * PARAMETERS +	 *	once_control +	 *		pointer to an instance of pthread_once_t +	 * +	 *	init_routine +	 *		pointer to an initialization routine +	 * +	 * +	 * DESCRIPTION +	 *	See above. +	 * +	 * RESULTS +	 *		0		success, +	 *		EINVAL		once_control or init_routine is NULL +	 * +	 * ------------------------------------------------------ +	 */  {    int result; @@ -84,28 +92,28 @@ pthread_once (    if (!once_control->done)      {        if (InterlockedIncrement (&(once_control->started)) == 0) -        { -          /* -           * First thread to increment the started variable -           */ -          (*init_routine) (); -          once_control->done = TRUE; - -        } +	{ +	  /* +	   * First thread to increment the started variable +	   */ +	  (*init_routine) (); +	  once_control->done = TRUE; + +	}        else -        { -          /* -           * Block until other thread finishes executing the onceRoutine -           */ -          while (!(once_control->done)) -            { -              /* -               * The following gives up CPU cycles without pausing -               * unnecessarily -               */ -              Sleep (0); -            } -        } +	{ +	  /* +	   * Block until other thread finishes executing the onceRoutine +	   */ +	  while (!(once_control->done)) +	    { +	      /* +	       * The following gives up CPU cycles without pausing +	       * unnecessarily +	       */ +	      Sleep (0); +	    } +	}      }    /* @@ -120,7 +128,7 @@ pthread_once (  FAIL0:    return (result); -}                               /* pthread_once */ +}				/* pthread_once */  pthread_t @@ -140,7 +148,7 @@ pthread_self (void)        *      thread.        *        * RESULTS -      *              pthread_t       reference to the current thread +      * 	     pthread_t	     reference to the current thread        *        * ------------------------------------------------------        */ @@ -175,7 +183,7 @@ pthread_self (void)  	  self->thread = GetCurrentThreadId ();  #ifdef NEED_DUPLICATEHANDLE -	  /*  +	  /*  	   * DuplicateHandle does not exist on WinCE.  	   *  	   * NOTE: @@ -219,7 +227,7 @@ pthread_equal (pthread_t t1, pthread_t t2)        * PARAMETERS        *      t1,        *      t2 -      *              references to an instances of thread_t +      * 	     references to an instances of thread_t        *        *        * DESCRIPTION @@ -227,8 +235,8 @@ pthread_equal (pthread_t t1, pthread_t t2)        *      returns zero.        *        * RESULTS -      *              non-zero        if t1 and t2 refer to the same thread, -      *              0               t1 and t2 do not refer to the same thread +      * 	     non-zero	     if t1 and t2 refer to the same thread, +      * 	     0		     t1 and t2 do not refer to the same thread        *        * ------------------------------------------------------        */ @@ -265,7 +273,7 @@ int  pthread_getconcurrency(void)  {    return ptw32_concurrency; -}                                                                                +}										  static INLINE int @@ -298,13 +306,13 @@ ptw32_cancelable_wait (HANDLE waitHandle, DWORD timeout)         * Get cancelEvent handle         */        if (self->cancelState == PTHREAD_CANCEL_ENABLE) -        { +	{ -          if ((handles[1] = self->cancelEvent) != NULL) -            { -              nHandles++; -            } -        } +	  if ((handles[1] = self->cancelEvent) != NULL) +	    { +	      nHandles++; +	    } +	}      }    else      { @@ -312,10 +320,10 @@ ptw32_cancelable_wait (HANDLE waitHandle, DWORD timeout)      }    status = WaitForMultipleObjects ( -                                    nHandles, -                                    handles, -                                    FALSE, -                                    timeout); +				    nHandles, +				    handles, +				    FALSE, +				    timeout);    if (status == WAIT_FAILED) @@ -337,53 +345,53 @@ ptw32_cancelable_wait (HANDLE waitHandle, DWORD timeout)         * was signaled         */        switch (status - WAIT_OBJECT_0) -        { - -        case 0: -          /* -           * Got the handle -           */ -          result = 0; -          break; - -        case 1: -          /* -           * Got cancel request -           */ -          ResetEvent (handles[1]); - -          if (self != NULL && !self->implicit) -            { -              /* -               * Thread started with pthread_create. -               * Make sure we haven't been async-canceled in the meantime. -               */ -              (void) pthread_mutex_lock(&self->cancelLock); -              if (self->state < PThreadStateCanceling) -                { -                  self->state = PThreadStateCanceling; -                  self->cancelState = PTHREAD_CANCEL_DISABLE; -                  (void) pthread_mutex_unlock(&self->cancelLock); -                  ptw32_throw(PTW32_EPS_CANCEL); - -                  /* Never reached */ -                } -              (void) pthread_mutex_unlock(&self->cancelLock); -            } - -          /* Should never get to here. */ -          result = EINVAL; -          break; - -        default: -          result = EINVAL; -          break; -        } +	{ + +	case 0: +	  /* +	   * Got the handle +	   */ +	  result = 0; +	  break; + +	case 1: +	  /* +	   * Got cancel request +	   */ +	  ResetEvent (handles[1]); + +	  if (self != NULL && !self->implicit) +	    { +	      /* +	       * Thread started with pthread_create. +	       * Make sure we haven't been async-canceled in the meantime. +	       */ +	      (void) pthread_mutex_lock(&self->cancelLock); +	      if (self->state < PThreadStateCanceling) +		{ +		  self->state = PThreadStateCanceling; +		  self->cancelState = PTHREAD_CANCEL_DISABLE; +		  (void) pthread_mutex_unlock(&self->cancelLock); +		  ptw32_throw(PTW32_EPS_CANCEL); + +		  /* Never reached */ +		} +	      (void) pthread_mutex_unlock(&self->cancelLock); +	    } + +	  /* Should never get to here. */ +	  result = EINVAL; +	  break; + +	default: +	  result = EINVAL; +	  break; +	}      }    return (result); -}                               /* CancelableWait */ +}				/* CancelableWait */  int  pthreadCancelableWait (HANDLE waitHandle) @@ -411,6 +419,17 @@ ptw32_new (void)        t->cancelState = PTHREAD_CANCEL_ENABLE;        t->cancelType  = PTHREAD_CANCEL_DEFERRED;        t->cancelLock  = PTHREAD_MUTEX_INITIALIZER; +      t->cancelEvent = CreateEvent ( +				    0, +				    (int) TRUE,    /* manualReset  */ +				    (int) FALSE,   /* setSignaled  */ +				    NULL); + +      if (t->cancelEvent == NULL) +	{ +	  free (t); +	  t = NULL; +	}      }    return t; @@ -4,26 +4,34 @@   * Description:   * This translation unit implements mutual exclusion (mutex) primitives.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */  #ifndef _UWIN @@ -933,7 +941,7 @@ pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *abstime)  		       * possible error, so no need to test errno.  		       */ -		      if (-1 == sem_trywait( &mx->wait_sema )) +		      if ( -1 == sem_trywait( &mx->wait_sema ) )  			{  			  (void) InterlockedDecrement( &mx->lock_idx );  			  result = ETIMEDOUT; @@ -942,14 +950,39 @@ pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *abstime)  		      LeaveCriticalSection(&mx->wait_cs);  		      break;  		    } -		  case 2: /* abstime had passed before we started to wait. */ +		  case 2: /* abstime passed before we started to wait. */  		    {  		      /*  		       * If we timeout, it is up to us to adjust lock_idx to say -		       * we're no longer waiting. wait_sema has not been touched. +		       * we're no longer waiting. +                       * +                       * The owner thread may still have posted wait_sema thinking +                       * we were waiting. I believe we must check but then NOT do any +                       * programmed work if we have acquired the mutex because +                       * we don't how long ago abstime was. We MUST just release it +                       * immediately.  		       */ -		      (void) InterlockedDecrement( &mx->lock_idx ); +		      EnterCriticalSection(&mx->wait_cs); +  		      result = ETIMEDOUT; + +		      if ( -1 == sem_trywait( &mx->wait_sema ) ) +			{ +			  (void) InterlockedDecrement( &mx->lock_idx ); +			} +                      else +                        { +                          if ( InterlockedDecrement( &mx->lock_idx ) >= 0 ) +                            { +                              /* Someone else is waiting on that mutex */ +                              if ( sem_post( &mx->wait_sema ) != 0 ) +                                { +                                  result = errno; +                                } +                            } +                        } + +		      LeaveCriticalSection(&mx->wait_cs);  		      break;  		    }  		  default: diff --git a/nonportable.c b/nonportable.c index c465d57..daa73e7 100644 --- a/nonportable.c +++ b/nonportable.c @@ -4,26 +4,34 @@   * Description:   * This translation unit implements non-portable thread functions.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" @@ -111,6 +119,7 @@ pthread_delay_np (struct timespec * interval)    DWORD secs_in_millisecs;    DWORD millisecs;    DWORD status; +  pthread_t self;    if (interval == NULL)      { @@ -136,13 +145,18 @@ pthread_delay_np (struct timespec * interval)        return EINVAL;      } +  if (NULL == (self = pthread_self())) +    { +      return ENOMEM; +    } +    if (self->cancelState == PTHREAD_CANCEL_ENABLE)      {        /*         * Async cancelation won't catch us until wait_time is up.         * Deferred cancelation will cancel us immediately.         */ -      if (WAIT_OBJECT_0 ==  +      if (WAIT_OBJECT_0 ==            (status = WaitForSingleObject(self->cancelEvent, wait_time)) )          {            /* @@ -157,9 +171,11 @@ pthread_delay_np (struct timespec * interval)                ptw32_throw(PTW32_EPS_CANCEL);              } -        } -      if (status != WAIT_TIMEOUT) +          (void) pthread_mutex_unlock(&self->cancelLock); +          return ESRCH; +        } +      else if (status != WAIT_TIMEOUT)          {            return EINVAL;          } @@ -5,26 +5,34 @@   * This translation unit implements routines which are private to   * the implementation and may be used throughout it.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" @@ -282,6 +290,7 @@ ptw32_threadStart (void * vthreadParms)       * Run the caller's routine;       */      status = self->exitStatus = (*start) (arg); +  #ifdef _UWIN  	if (--pthread_count <= 0)  		exit(0); diff --git a/pthread.c b/pthread.c new file mode 100644 index 0000000..7fbfa9f --- /dev/null +++ b/pthread.c @@ -0,0 +1,52 @@ +/* + * pthread.c + * + * Description: + * This translation unit agregates operations on threads. + * It is used for inline optimisation of the library, + * maximising for speed at the expense of size. + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 + */ + +/* + * This file is intended to form a single translation unit + * consisting of the entire pthreads-win32 library. + * The reason for doing this is to maximise inline optimisation + * wherever possible. + */ + +#include "pthread.h" +#include "implement.h" + +#include "attr.c" +#include "barrier.c" +#include "cancel.c" +#include "semaphore.c" @@ -1,30 +1,64 @@  /* This is the POSIX thread API (POSIX 1003). - *  - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au   * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */  #if !defined( PTHREAD_H )  #define PTHREAD_H +#undef PTW32_LEVEL + +#if defined(_POSIX_SOURCE) +#define PTW32_LEVEL 0 +/* Early POSIX */ +#endif + +#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309 +#undef PTW32_LEVEL +#define PTW32_LEVEL 1 +/* Include 1b, 1c and 1d */ +#endif + +#if defined(INCLUDE_NP) +#undef PTW32_LEVEL +#define PTW32_LEVEL 2 +/* Include Non-Portable extensions */ +#endif + +#define PTW32_LEVEL_MAX 3 + +#if !defined(PTW32_LEVEL) +#define PTW32_LEVEL PTW32_LEVEL_MAX +/* Include everything */ +#endif +  #ifdef _UWIN  #   define HAVE_STRUCT_TIMESPEC 1  #   define HAVE_SIGNAL_H	1 @@ -131,6 +165,26 @@  #include "config.h"  #endif /* HAVE_CONFIG_H */ +#if PTW32_LEVEL >= PTW32_LEVEL_MAX + +/* Try to avoid including windows.h */ +#if defined(__MINGW32__) && defined(__cplusplus) +/* + * FIXME: The pthreadGCE.dll build gets linker unresolved errors + * on pthread_key_create() unless windows.h is included here. + * It appears to have something to do with an argument type mismatch. + * Looking at tsd.o with 'nm' shows this line: + * 00000000 T _pthread_key_create__FPP14pthread_key_t_PFPv_v + * instead of + * 00000000 T _pthread_key_create + */ +#define PTW32_INCLUDE_WINDOWS_H +#endif + +#ifdef PTW32_INCLUDE_WINDOWS_H +#include <windows.h> +#endif +  #ifndef NEED_FTIME  #include <time.h>  #else /* NEED_FTIME */ @@ -143,33 +197,12 @@  #include <setjmp.h> -#ifndef HAVE_STRUCT_TIMESPEC -struct timespec { -	long tv_sec; -	long tv_nsec; -}; -#endif /* HAVE_STRUCT_TIMESPEC */ - -#ifndef SIG_BLOCK -#define SIG_BLOCK 0 -#endif /* SIG_BLOCK */ - -#ifndef SIG_UNBLOCK  -#define SIG_UNBLOCK 1 -#endif /* SIG_UNBLOCK */ - -#ifndef SIG_SETMASK -#define SIG_SETMASK 2 -#endif /* SIG_SETMASK */ -  #ifdef NEED_ERRNO  #  include "need_errno.h"  #else  #  include <errno.h>  #endif -#include <sched.h> -  /*   * Several systems don't define ENOTSUP. If not, we use   * the same value as Solaris. @@ -182,6 +215,8 @@ struct timespec {  #  define ETIMEDOUT 10060     /* This is the value in winsock.h. */  #endif +#include <sched.h> +  /*   * To avoid including windows.h we define only those things that we   * actually need from it. I don't like the potential incompatibility that @@ -189,15 +224,36 @@ struct timespec {   */  #ifndef PTW32_INCLUDE_WINDOWS_H  #ifndef HANDLE -# define __HANDLE_DEF +# define PTW32__HANDLE_DEF  # define HANDLE void *  #endif  #ifndef DWORD -# define __DWORD_DEF +# define PTW32__DWORD_DEF  # define DWORD unsigned long  #endif  #endif +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ + +#ifndef HAVE_STRUCT_TIMESPEC +struct timespec { +	long tv_sec; +	long tv_nsec; +}; +#endif /* HAVE_STRUCT_TIMESPEC */ + +#ifndef SIG_BLOCK +#define SIG_BLOCK 0 +#endif /* SIG_BLOCK */ + +#ifndef SIG_UNBLOCK  +#define SIG_UNBLOCK 1 +#endif /* SIG_UNBLOCK */ + +#ifndef SIG_SETMASK +#define SIG_SETMASK 2 +#endif /* SIG_SETMASK */ +  #ifdef __cplusplus  extern "C"  { @@ -381,7 +437,7 @@ extern "C"  #define PTHREAD_THREADS_MAX				2019 -#ifdef _UWIN +#if defined(_UWIN) && PTW32_LEVEL >= PTW32_LEVEL_MAX  #   include	<sys/types.h>  #else  typedef struct pthread_t_ *pthread_t; @@ -778,11 +834,13 @@ void pthread_testcancel (void);  int pthread_once (pthread_once_t * once_control,  		  void (*init_routine) (void)); +#if PTW32_LEVEL >= PTW32_LEVEL_MAX  ptw32_cleanup_t *ptw32_pop_cleanup (int execute);  void ptw32_push_cleanup (ptw32_cleanup_t * cleanup,  			   void (*routine) (void *),  			   void *arg); +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */  /*   * Thread Specific Data Functions @@ -945,6 +1003,8 @@ int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * attr,  int pthread_rwlockattr_setpshared (pthread_rwlockattr_t * attr,  				   int pshared); +#if PTW32_LEVEL >= PTW32_LEVEL_MAX - 1 +  /*   * Non-portable functions   */ @@ -961,11 +1021,6 @@ int pthread_mutexattr_getkind_np(pthread_mutexattr_t * attr, int *kind);  int pthread_delay_np (struct timespec * interval);  /* - * Returns the Win32 HANDLE for the POSIX thread. - */ -HANDLE pthread_getw32threadhandle_np(pthread_t thread); - -/*   * Returns the number of CPUs available to the process.   */  int pthread_getprocessors_np(int * count); @@ -980,6 +1035,15 @@ int pthread_win32_process_detach_np(void);  int pthread_win32_thread_attach_np(void);  int pthread_win32_thread_detach_np(void); +#endif /*PTW32_LEVEL >= PTW32_LEVEL_MAX - 1 */ + +#if PTW32_LEVEL >= PTW32_LEVEL_MAX + +/* + * Returns the Win32 HANDLE for the POSIX thread. + */ +HANDLE pthread_getw32threadhandle_np(pthread_t thread); +  /*   * Protected Methods @@ -999,6 +1063,8 @@ int pthread_win32_thread_detach_np(void);  int pthreadCancelableWait (HANDLE waitHandle);  int pthreadCancelableTimedWait (HANDLE waitHandle, DWORD timeout); +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ +  /*   * Thread-Safe C Runtime Library Mappings.   */ @@ -1063,12 +1129,16 @@ class ptw32_exception_exit   : public ptw32_exception {};  #endif +#if PTW32_LEVEL >= PTW32_LEVEL_MAX +  /* FIXME: This is only required if the library was built using SEH */  /*   * Get internal SEH tag   */  DWORD ptw32_get_exception_services_code(void); +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ +  #ifndef PTW32_BUILD  #ifdef __CLEANUP_SEH @@ -1097,9 +1167,22 @@ DWORD ptw32_get_exception_services_code(void);  #ifndef PtW32NoCatchWarn +#pragma message("Specify \"/DPtW32NoCatchWarn\" compiler flag to skip this message.") +#pragma message("------------------------------------------------------------------")  #pragma message("When compiling applications with MSVC++ and C++ exception handling:") -#pragma message("  Replace any 'catch( ... )' with 'PtW32CatchAll' in POSIX threads") -#pragma message("  if you want POSIX thread cancelation and pthread_exit to work.") +#pragma message("  Replace any 'catch( ... )' in routines called from POSIX threads") +#pragma message("  with 'PtW32CatchAll' or 'CATCHALL' if you want POSIX thread") +#pragma message("  cancelation and pthread_exit to work. For example:") +#pragma message("") +#pragma message("    #ifdef PtW32CatchAll") +#pragma message("      PtW32CatchAll") +#pragma message("    #else") +#pragma message("      catch(...)") +#pragma message("    #endif") +#pragma message("	 {") +#pragma message("	   /* Catchall block processing */") +#pragma message("	 }") +#pragma message("------------------------------------------------------------------")  #endif @@ -1107,6 +1190,9 @@ DWORD ptw32_get_exception_services_code(void);  	catch( ptw32_exception & ) { throw; } \  	catch( ... ) +/* I believe this is used by TRU64 POSIX threads implementation. */ +#define CATCHALL PtW32CatchAll +  #else /* _MSC_VER */  #define catch( E ) \ @@ -1123,11 +1209,14 @@ DWORD ptw32_get_exception_services_code(void);  }				/* End of extern "C" */  #endif				/* __cplusplus */ -#ifdef __HANDLE_DEF +#ifdef PTW32__HANDLE_DEF  # undef HANDLE  #endif -#ifdef __DWORD_DEF +#ifdef PTW32__DWORD_DEF  # undef DWORD  #endif +#undef PTW32_LEVEL +#undef PTW32_LEVEL_MAX +  #endif /* PTHREAD_H */ @@ -4,26 +4,34 @@   * Description:   * This translation unit implements read/write lock primitives.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 <errno.h> @@ -4,26 +4,34 @@   * Description:   * POSIX thread functions that deal with thread scheduling.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" @@ -7,35 +7,71 @@   *   *              POSIX 1003.1b-1993      (POSIX.1b)   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */  #ifndef _SCHED_H  #define _SCHED_H +#undef PTW32_LEVEL + +#if defined(_POSIX_SOURCE) +#define PTW32_LEVEL 0 +/* Early POSIX */ +#endif + +#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309 +#undef PTW32_LEVEL +#define PTW32_LEVEL 1 +/* Include 1b, 1c and 1d */ +#endif + +#if defined(INCLUDE_NP) +#undef PTW32_LEVEL +#define PTW32_LEVEL 2 +/* Include Non-Portable extensions */ +#endif + +#define PTW32_LEVEL_MAX 3 + +#if !defined(PTW32_LEVEL) +#define PTW32_LEVEL PTW32_LEVEL_MAX +/* Include everything */ +#endif +  #if defined(__MINGW32__) || defined(_UWIN) +#if PTW32_LEVEL >= PTW32_LEVEL_MAX  /* For pid_t */  #  include <sys/types.h>  /* Required by Unix 98 */  #  include <time.h> +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */  #else  typedef int pid_t;  #endif @@ -87,6 +123,8 @@ int sched_getscheduler (pid_t pid);  }                               /* End of extern "C" */  #endif                          /* __cplusplus */ +#undef PTW32_LEVEL +#undef PTW32_LEVEL_MAX  #endif                          /* !_SCHED_H */ diff --git a/semaphore.c b/semaphore.c index 86222ec..713a904 100644 --- a/semaphore.c +++ b/semaphore.c @@ -4,6 +4,10 @@   * Module: semaphore.c   *   * Purpose: + *	Concatenated version of separate modules to allow + *	inlining optimisation, which it is assumed can only + *	be effective within a single module. + *   *	Semaphores aren't actually part of the PThreads standard.   *	They are defined by the POSIX Standard:   * @@ -11,704 +15,63 @@   *   * -------------------------------------------------------------   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */ -/* ignore warning "unreferenced formal parameter" */ -#ifdef _MSC_VER -#pragma warning( disable : 4100 ) -#endif -  #ifndef _UWIN -#   include <process.h> +#  include <process.h>  #endif  #ifndef NEED_FTIME -#include <sys/timeb.h> +#  include <sys/timeb.h>  #endif + +#include <limits.h> +  #include "pthread.h"  #include "semaphore.h"  #include "implement.h" -int -sem_init (sem_t * sem, int pshared, unsigned int value) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function initializes an unnamed semaphore. the -      *      initial value of the semaphore is 'value' -      * -      * PARAMETERS -      *      sem -      * 	     pointer to an instance of sem_t -      * -      *      pshared -      * 	     if zero, this semaphore may only be shared between -      * 	     threads in the same process. -      * 	     if nonzero, the semaphore can be shared between -      * 	     processes -      * -      *      value -      * 	     initial value of the semaphore counter -      * -      * DESCRIPTION -      *      This function initializes an unnamed semaphore. The -      *      initial value of the semaphore is set to 'value'. -      * -      * RESULTS -      * 	     0		     successfully created semaphore, -      * 	     -1 	     failed, error in errno -      * ERRNO -      * 	     EINVAL	     'sem' is not a valid semaphore, -      * 	     ENOSPC	     a required resource has been exhausted, -      * 	     ENOSYS	     semaphores are not supported, -      * 	     EPERM	     the process lacks appropriate privilege -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; -  sem_t s; - -  if (pshared != 0) -    { -      /* -       * Creating a semaphore that can be shared between -       * processes -       */ -      result = EPERM; - -    } -  else -    { - -      s = (sem_t) calloc (1, sizeof (*s)); - -      if (NULL == s) -	{ -	  result = ENOMEM; -	} - -#ifdef NEED_SEM - -      else -	{ -	  s->value = value; -	  s->event = CreateEvent (NULL, -				  FALSE,	/* manual reset */ -				  FALSE,	/* initial state */ -				  NULL); -	  if (0 == s->event) -	    { -	      result = ENOSPC; -	    } -	  else -	    { -	      if (value != 0) -		{ -		  SetEvent(s->event); -		} - -	      InitializeCriticalSection(&s->sem_lock_cs); -	    } -	} - -#else /* NEED_SEM */ - -      s->sem = CreateSemaphore (NULL,	     /* Always NULL */ -				value,	     /* Initial value */ -				0x7FFFFFFFL, /* Maximum value */ -				NULL);	     /* Name */ - -      if (0 == s->sem) -	{ -	  result = ENOSPC; -	} - -#endif /* NEED_SEM */ - -    } - -  if (result != 0) -    { -      errno = result; -      return -1; -    } - -  *sem = s; - -  return 0; - -}				/* sem_init */ - - -int -sem_destroy (sem_t * sem) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function destroys an unnamed semaphore. -      * -      * PARAMETERS -      *      sem -      * 	     pointer to an instance of sem_t -      * -      * DESCRIPTION -      *      This function destroys an unnamed semaphore. -      * -      * RESULTS -      * 	     0		     successfully destroyed semaphore, -      * 	     -1 	     failed, error in errno -      * ERRNO -      * 	     EINVAL	     'sem' is not a valid semaphore, -      * 	     ENOSYS	     semaphores are not supported, -      * 	     EBUSY	     threads (or processes) are currently -      * 				     blocked on 'sem' -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; -  sem_t s; - -  if (sem == NULL || *sem == NULL) -    { -      result = EINVAL; -    } -  else -    { -      s = *sem; -      *sem = NULL; - -#ifdef NEED_SEM - -      if (! CloseHandle(s->event)) -	{ -	  *sem = s; -	  result = EINVAL; -	} -      else -	{ -	  DeleteCriticalSection(&s->sem_lock_cs); -	} - -#else /* NEED_SEM */ - -      if (! CloseHandle (s->sem)) -	{ -	  *sem = s; -	  result = EINVAL; -	} - -#endif /* NEED_SEM */ - -    } - -  if (result != 0) -    { -      errno = result; -      return -1; -    } - -  free(s); - -  return 0; - -}				/* sem_destroy */ - - -int -sem_trywait (sem_t * sem) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function tries to wait on a semaphore. -      * -      * PARAMETERS -      *      sem -      * 	     pointer to an instance of sem_t -      * -      * DESCRIPTION -      *      This function tries to wait on a semaphore. If the -      *      semaphore value is greater than zero, it decreases -      *      its value by one. If the semaphore value is zero, then -      *      this function returns immediately with the error EAGAIN -      * -      * RESULTS -      * 	     0		     successfully decreased semaphore, -      * 	     -1 	     failed, error in errno -      * ERRNO -      * 	     EAGAIN	     the semaphore was already locked, -      * 	     EINVAL	     'sem' is not a valid semaphore, -      * 	     ENOTSUP	     sem_trywait is not supported, -      * 	     EINTR	     the function was interrupted by a signal, -      * 	     EDEADLK	     a deadlock condition was detected. -      * -      * ------------------------------------------------------ -      */ -{ -#ifdef NEED_SEM - -  /* -   * not yet implemented! -   */ -  errno = ENOTSUP; -  return -1; - -#else /* NEED_SEM */ - -  int result = 0; - -  if (sem == NULL || *sem == NULL) -    { -      result = EINVAL; -    } -  else if (WaitForSingleObject ((*sem)->sem, 0) == WAIT_TIMEOUT) -    { -      result = EAGAIN; -    } - -  if (result != 0) -    { -      errno = result; -      return -1; -    } - -  return 0; - -#endif /* NEED_SEM */ - -}				/* sem_trywait */ - - -#ifdef NEED_SEM - -void  -ptw32_decrease_semaphore(sem_t * sem) -{ -  register sem_t s = *sem; - -  EnterCriticalSection(&s->sem_lock_cs); - -  if (s->value != 0) -    { -      s->value--; -      if (s->value != 0) -	{ -	  SetEvent(s->event); -	} -    } -  else -    { -      /* this case should not happen! */ -    } - -  LeaveCriticalSection(&s->sem_lock_cs); -} - -BOOL  -ptw32_increase_semaphore(sem_t * sem, unsigned int n) -{ -  BOOL result; -  register sem_t s = *sem; - -  EnterCriticalSection(&s->sem_lock_cs); - -  if (s->value + n > s->value) -    { -       s->value += n; -       SetEvent(s->event); -       result = TRUE; -    } -  else -    { -       result = FALSE; -    } - -  LeaveCriticalSection(&s->sem_lock_cs); -  return result; -} - -#endif /* NEED_SEM */ - -int -sem_wait (sem_t * sem) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function  waits on a semaphore. -      * -      * PARAMETERS -      *      sem -      * 	     pointer to an instance of sem_t -      * -      * DESCRIPTION -      *      This function waits on a semaphore. If the -      *      semaphore value is greater than zero, it decreases -      *      its value by one. If the semaphore value is zero, then -      *      the calling thread (or process) is blocked until it can -      *      successfully decrease the value or until interrupted by -      *      a signal. -      * -      * RESULTS -      * 	     0		     successfully decreased semaphore, -      * 	     -1 	     failed, error in errno -      * ERRNO -      * 	     EINVAL	     'sem' is not a valid semaphore, -      * 	     ENOSYS	     semaphores are not supported, -      * 	     EINTR	     the function was interrupted by a signal, -      * 	     EDEADLK	     a deadlock condition was detected. -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; - -  if (sem == NULL || *sem == NULL) -    { -      result = EINVAL; -    } -  else -    { - -#ifdef NEED_SEM - -	result = pthreadCancelableWait ((*sem)->event); - -#else /* NEED_SEM */ - -	result = pthreadCancelableWait ((*sem)->sem); - -#endif /* NEED_SEM */ - -    } - -  if (result != 0) -    { -      errno = result; -      return -1; -    } - -#ifdef NEED_SEM - -  ptw32_decrease_semaphore(sem); - -#endif /* NEED_SEM */ - -  return 0; - -}				/* sem_wait */ - - -int -sem_timedwait (sem_t * sem, const struct timespec * abstime) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function waits on a semaphore possibly until -      *      'abstime' time. -      * -      * PARAMETERS -      *      sem -      * 	     pointer to an instance of sem_t -      * -      *      abstime -      * 	     pointer to an instance of struct timespec -      * -      * DESCRIPTION -      *      This function waits on a semaphore. If the -      *      semaphore value is greater than zero, it decreases -      *      its value by one. If the semaphore value is zero, then -      *      the calling thread (or process) is blocked until it can -      *      successfully decrease the value or until interrupted by -      *      a signal. -      * -      *      If 'abstime' is a NULL pointer then this function will -      *      block until it can successfully decrease the value or -      *      until interrupted by a signal. -      * -      * RESULTS -      * 	     0		     successfully decreased semaphore, -      * 	     -1 	     failed, error in errno -      * ERRNO -      * 	     EINVAL	     'sem' is not a valid semaphore, -      * 	     ENOSYS	     semaphores are not supported, -      * 	     EINTR	     the function was interrupted by a signal, -      * 	     EDEADLK	     a deadlock condition was detected. -      * 	     ETIMEDOUT	     abstime elapsed before success. -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; - -#ifdef NEED_FTIME - -  struct timespec currSysTime; - -#else /* NEED_FTIME */ - -  struct _timeb currSysTime; - -#endif /* NEED_FTIME */ - -  const DWORD NANOSEC_PER_MILLISEC = 1000000; -  const DWORD MILLISEC_PER_SEC = 1000; -  DWORD milliseconds; - -  if (sem == NULL) -    { -      result = EINVAL; -    } -  else -    { -      if (abstime == NULL) -	{ -	  milliseconds = INFINITE; -	} -      else -	{ -	  /*  -	   * Calculate timeout as milliseconds from current system time.  -	   */ - -	  /* get current system time */ - -#ifdef NEED_FTIME - -	  { -	    FILETIME ft; -	    SYSTEMTIME st; - -	    GetSystemTime(&st); -	    SystemTimeToFileTime(&st, &ft); -	    /* -	     * GetSystemTimeAsFileTime(&ft); would be faster, -	     * but it does not exist on WinCE -	     */ - -	    filetime_to_timespec(&ft, &currSysTime); -	  } - -	  /* -	   * subtract current system time from abstime -	   */ -	  milliseconds = (abstime->tv_sec - currSysTime.tv_sec) * MILLISEC_PER_SEC; -	  milliseconds += ((abstime->tv_nsec - currSysTime.tv_nsec) + (NANOSEC_PER_MILLISEC/2)) / NANOSEC_PER_MILLISEC; - -#else /* NEED_FTIME */ -	  _ftime(&currSysTime); - -	  /* -	   * subtract current system time from abstime -	   */ -	  milliseconds = (abstime->tv_sec - currSysTime.time) * MILLISEC_PER_SEC; -	  milliseconds += ((abstime->tv_nsec + (NANOSEC_PER_MILLISEC/2)) / NANOSEC_PER_MILLISEC) - -	    currSysTime.millitm; - -#endif /* NEED_FTIME */ - - -	  if (((int) milliseconds) < 0) -	    milliseconds = 0; -	} +#include "semaphore_init.c" +#include "semaphore_destroy.c" +#include "semaphore_trywait.c" +#include "semaphore_wait.c" +#include "semaphore_timedwait.c" +#include "semaphore_post.c" +#include "semaphore_postmultiple.c" +#include "semaphore_getvalue.c" +#include "semaphore_open.c" +#include "semaphore_close.c" +#include "semaphore_unlink.c"  #ifdef NEED_SEM - -      result = (pthreadCancelableTimedWait ((*sem)->event, milliseconds)); - -#else /* NEED_SEM */ - -      result = (pthreadCancelableTimedWait ((*sem)->sem, milliseconds)); - +#include "semaphore_decrease.c" +#include "semaphore_increase.c"  #endif -    } - -  if (result != 0) -    { - -      errno = result; -      return -1; - -    } - -#ifdef NEED_SEM - -  ptw32_decrease_semaphore(sem); - -#endif /* NEED_SEM */ - -  return 0; - -}				/* sem_timedwait */ - - -int -sem_post (sem_t * sem) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function posts a wakeup to a semaphore. -      * -      * PARAMETERS -      *      sem -      * 	     pointer to an instance of sem_t -      * -      * DESCRIPTION -      *      This function posts a wakeup to a semaphore. If there -      *      are waiting threads (or processes), one is awakened; -      *      otherwise, the semaphore value is incremented by one. -      * -      * RESULTS -      * 	     0		     successfully posted semaphore, -      * 	     -1 	     failed, error in errno -      * ERRNO -      * 	     EINVAL	     'sem' is not a valid semaphore, -      * 	     ENOSYS	     semaphores are not supported, -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; - -  if (sem == NULL || *sem == NULL) -    { -	result = EINVAL; -    } - -#ifdef NEED_SEM - -  else if (! ptw32_increase_semaphore (sem, 1)) - -#else /* NEED_SEM */ - -  else if (! ReleaseSemaphore ((*sem)->sem, 1, 0)) - -#endif /* NEED_SEM */ - -    { -	result = EINVAL; -    } - -  if (result != 0) -    { -      errno = result; -      return -1; -    } - -  return 0; - -}				/* sem_post */ - - -int -sem_post_multiple (sem_t * sem, int count ) -     /* -      * ------------------------------------------------------ -      * DOCPUBLIC -      *      This function posts multiple wakeups to a semaphore. -      * -      * PARAMETERS -      *      sem -      * 	     pointer to an instance of sem_t -      * -      *      count -      * 	     counter, must be greater than zero. -      * -      * DESCRIPTION -      *      This function posts multiple wakeups to a semaphore. If there -      *      are waiting threads (or processes), n <= count are awakened; -      *      the semaphore value is incremented by count - n. -      * -      * RESULTS -      * 	     0		     successfully posted semaphore, -      * 	     -1 	     failed, error in errno -      * ERRNO -      * 	     EINVAL	     'sem' is not a valid semaphore -      * 			     or count is less than or equal to zero. -      * -      * ------------------------------------------------------ -      */ -{ -  int result = 0; - -  if (sem == NULL || *sem == NULL || count <= 0) -    { -      result = EINVAL; -    } - -#ifdef NEED_SEM - -  else if (! ptw32_increase_semaphore (sem, count)) - -#else /* NEED_SEM */ - -  else if (! ReleaseSemaphore ((*sem)->sem, count, 0)) - -#endif /* NEED_SEM */ - -    { -      result = EINVAL; -    } - -  if (result != 0) -    { -      errno = result; -      return -1; -    } - -  return 0; - -}				/* sem_post_multiple */ - - -int -sem_open (const char * name, int oflag, mode_t mode, unsigned int value) -{ -  errno = ENOSYS; -  return -1; -}				/* sem_open */ - - -int -sem_close (sem_t * sem) -{ -  errno = ENOSYS; -  return -1; -}				/* sem_close */ - - -int -sem_unlink (const char * name) -{ -  errno = ENOSYS; -  return -1; -}				/* sem_unlink */ - - -int -sem_getvalue (sem_t * sem, int * sval) -{ -  errno = ENOSYS; -  return -1; -}				/* sem_getvalue */ - diff --git a/semaphore.h b/semaphore.h index ce135bf..78a627c 100644 --- a/semaphore.h +++ b/semaphore.h @@ -7,30 +7,64 @@   *   *              POSIX 1003.1b-1993      (POSIX.1b)   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */  #if !defined( SEMAPHORE_H )  #define SEMAPHORE_H +#undef PTW32_LEVEL + +#if defined(_POSIX_SOURCE) +#define PTW32_LEVEL 0 +/* Early POSIX */ +#endif + +#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309 +#undef PTW32_LEVEL +#define PTW32_LEVEL 1 +/* Include 1b, 1c and 1d */ +#endif + +#if defined(INCLUDE_NP) +#undef PTW32_LEVEL +#define PTW32_LEVEL 2 +/* Include Non-Portable extensions */ +#endif + +#define PTW32_LEVEL_MAX 3 + +#if !defined(PTW32_LEVEL) +#define PTW32_LEVEL PTW32_LEVEL_MAX +/* Include everything */ +#endif +  /*   * This is a duplicate of what is in the autoconf config.h,   * which is only used when building the pthread-win32 libraries. @@ -50,11 +84,13 @@   *   */ +#if PTW32_LEVEL >= PTW32_LEVEL_MAX  #ifdef NEED_SEM  #include "need_errno.h"  #else  #include <errno.h>  #endif +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */  #define _POSIX_SEMAPHORES @@ -104,4 +140,7 @@ int sem_getvalue (sem_t * sem,  }                               /* End of extern "C" */  #endif                          /* __cplusplus */ +#undef PTW32_LEVEL +#undef PTW32_LEVEL_MAX +  #endif                          /* !SEMAPHORE_H */ diff --git a/semaphore_close.c b/semaphore_close.c new file mode 100644 index 0000000..bb93e96 --- /dev/null +++ b/semaphore_close.c @@ -0,0 +1,58 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_close.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + +/* ignore warning "unreferenced formal parameter" */ +#ifdef _MSC_VER +#pragma warning( disable : 4100 ) +#endif + +int +sem_close (sem_t * sem) +{ +  errno = ENOSYS; +  return -1; +}				/* sem_close */ diff --git a/semaphore_decrease.c b/semaphore_decrease.c new file mode 100644 index 0000000..203d877 --- /dev/null +++ b/semaphore_decrease.c @@ -0,0 +1,74 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_decrease.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + + +#ifdef NEED_SEM + +INLINE void +ptw32_decrease_semaphore(sem_t * sem) +{ +  register sem_t s = *sem; + +  EnterCriticalSection(&s->sem_lock_cs); + +  if (s->value != 0) +    { +      s->value--; +      if (s->value != 0) +	{ +	  SetEvent(s->event); +	} +    } +  else +    { +      /* this case should not happen! */ +    } + +  LeaveCriticalSection(&s->sem_lock_cs); +} + +#endif /* NEED_SEM */ diff --git a/semaphore_destroy.c b/semaphore_destroy.c new file mode 100644 index 0000000..539f83a --- /dev/null +++ b/semaphore_destroy.c @@ -0,0 +1,121 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_destroy.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + + +int +sem_destroy (sem_t * sem) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function destroys an unnamed semaphore. +      * +      * PARAMETERS +      *      sem +      * 	     pointer to an instance of sem_t +      * +      * DESCRIPTION +      *      This function destroys an unnamed semaphore. +      * +      * RESULTS +      * 	     0		     successfully destroyed semaphore, +      * 	     -1 	     failed, error in errno +      * ERRNO +      * 	     EINVAL	     'sem' is not a valid semaphore, +      * 	     ENOSYS	     semaphores are not supported, +      * 	     EBUSY	     threads (or processes) are currently +      * 				     blocked on 'sem' +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; +  sem_t s; + +  if (sem == NULL || *sem == NULL) +    { +      result = EINVAL; +    } +  else +    { +      s = *sem; +      *sem = NULL; + +#ifdef NEED_SEM + +      if (! CloseHandle(s->event)) +	{ +	  *sem = s; +	  result = EINVAL; +	} +      else +	{ +	  DeleteCriticalSection(&s->sem_lock_cs); +	} + +#else /* NEED_SEM */ + +      if (! CloseHandle (s->sem)) +	{ +	  *sem = s; +	  result = EINVAL; +	} + +#endif /* NEED_SEM */ + +    } + +  if (result != 0) +    { +      errno = result; +      return -1; +    } + +  free(s); + +  return 0; + +}				/* sem_destroy */ diff --git a/semaphore_getvalue.c b/semaphore_getvalue.c new file mode 100644 index 0000000..185bcdb --- /dev/null +++ b/semaphore_getvalue.c @@ -0,0 +1,124 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_getvalue.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + + +int +sem_getvalue(sem_t * sem, int * sval) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function stores the current count value of the +      *      semaphore. +      * RESULTS +      * +      * Return value +      * +      *       0                  sval has been set. +      *      -1                  failed, error in errno +      * +      *  in global errno +      * +      *      EINVAL              'sem' is not a valid semaphore, +      *      ENOSYS              this function is not supported, +      * +      * +      * PARAMETERS +      * +      *      sem                 pointer to an instance of sem_t +      * +      *      sval                pointer to int. +      * +      * DESCRIPTION +      *      This function stores the current count value of the semaphore +      *      pointed to by sem in the int pointed to by sval. +      */ +{ +  int result = 0; +  +  if ( sem == NULL || *sem == NULL || sval == NULL ) +    { +      result = EINVAL; +    } +  else +    { + +#ifdef NEED_SEM +  +      result = ENOSYS; +  +#else +      long value = *sval; +  +      /* Note: +       *  The windows NT documentation says that the increment must be +       *  greater than zero, but it is set to zero here. If this works, +       *  the function will return true. If not, we can't do it this way +       *  so flag it as not implemented. +       */ + +      if ( ReleaseSemaphore( (*sem)->sem, 0L, &value) ) +        { +          *sval = value; +        } +      else +        { +          result = ENOSYS; +        } +  +#endif +    } +  +  +  if ( result != 0 ) +    { +      errno = result; +      return -1; +    } +  +  return 0; +  +}   /* sem_getvalue */ diff --git a/semaphore_increase.c b/semaphore_increase.c new file mode 100644 index 0000000..5a67468 --- /dev/null +++ b/semaphore_increase.c @@ -0,0 +1,73 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_increase.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + +#ifdef NEED_SEM + +INLINE BOOL +ptw32_increase_semaphore(sem_t * sem, unsigned int n) +{ +  BOOL result; +  register sem_t s = *sem; + +  EnterCriticalSection(&s->sem_lock_cs); + +  if (s->value + n > s->value) +    { +       s->value += n; +       SetEvent(s->event); +       result = TRUE; +    } +  else +    { +       result = FALSE; +    } + +  LeaveCriticalSection(&s->sem_lock_cs); +  return result; +} + +#endif /* NEED_SEM */ diff --git a/semaphore_init.c b/semaphore_init.c new file mode 100644 index 0000000..bda6849 --- /dev/null +++ b/semaphore_init.c @@ -0,0 +1,163 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_init.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 + */ + +#ifndef _UWIN +#   include <process.h> +#endif + +#include "pthread.h" +#include "semaphore.h" +#include "implement.h" + +#include <limits.h> + +int +sem_init (sem_t * sem, int pshared, unsigned int value) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function initializes an unnamed semaphore. the +      *      initial value of the semaphore is 'value' +      * +      * PARAMETERS +      *      sem +      * 	     pointer to an instance of sem_t +      * +      *      pshared +      * 	     if zero, this semaphore may only be shared between +      * 	     threads in the same process. +      * 	     if nonzero, the semaphore can be shared between +      * 	     processes +      * +      *      value +      * 	     initial value of the semaphore counter +      * +      * DESCRIPTION +      *      This function initializes an unnamed semaphore. The +      *      initial value of the semaphore is set to 'value'. +      * +      * RESULTS +      * 	     0		     successfully created semaphore, +      * 	     -1 	     failed, error in errno +      * ERRNO +      * 	     EINVAL	     'sem' is not a valid semaphore, +      * 	     ENOSPC	     a required resource has been exhausted, +      * 	     ENOSYS	     semaphores are not supported, +      * 	     EPERM	     the process lacks appropriate privilege +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; +  sem_t s; + +  if (pshared != 0) +    { +      /* +       * Creating a semaphore that can be shared between +       * processes +       */ +      result = EPERM; + +    } +  else +    { + +      s = (sem_t) calloc (1, sizeof (*s)); + +      if (NULL == s) +	{ +	  result = ENOMEM; +	} + +#ifdef NEED_SEM + +      else +	{ +	  s->value = value; +	  s->event = CreateEvent (NULL, +				  FALSE,	/* manual reset */ +				  FALSE,	/* initial state */ +				  NULL); +	  if (0 == s->event) +	    { +	      result = ENOSPC; +	    } +	  else +	    { +	      if (value != 0) +		{ +		  SetEvent(s->event); +		} + +	      InitializeCriticalSection(&s->sem_lock_cs); +	    } +	} + +#else /* NEED_SEM */ + +      s->sem = CreateSemaphore (NULL,	     /* Always NULL */ +				value,	     /* Initial value */ +				INT_MAX,     /* Maximum value */ +				NULL);	     /* Name */ + +      if (0 == s->sem) +	{ +	  result = ENOSPC; +	} + +#endif /* NEED_SEM */ + +    } + +  if (result != 0) +    { +      errno = result; +      return -1; +    } + +  *sem = s; + +  return 0; + +}				/* sem_init */ diff --git a/semaphore_open.c b/semaphore_open.c new file mode 100644 index 0000000..9de124a --- /dev/null +++ b/semaphore_open.c @@ -0,0 +1,58 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_open.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + +/* ignore warning "unreferenced formal parameter" */ +#ifdef _MSC_VER +#pragma warning( disable : 4100 ) +#endif + +int +sem_open (const char * name, int oflag, mode_t mode, unsigned int value) +{ +  errno = ENOSYS; +  return -1; +}				/* sem_open */ diff --git a/semaphore_post.c b/semaphore_post.c new file mode 100644 index 0000000..b7ce8da --- /dev/null +++ b/semaphore_post.c @@ -0,0 +1,104 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_post.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + + +int +sem_post (sem_t * sem) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function posts a wakeup to a semaphore. +      * +      * PARAMETERS +      *      sem +      * 	     pointer to an instance of sem_t +      * +      * DESCRIPTION +      *      This function posts a wakeup to a semaphore. If there +      *      are waiting threads (or processes), one is awakened; +      *      otherwise, the semaphore value is incremented by one. +      * +      * RESULTS +      * 	     0		     successfully posted semaphore, +      * 	     -1 	     failed, error in errno +      * ERRNO +      * 	     EINVAL	     'sem' is not a valid semaphore, +      * 	     ENOSYS	     semaphores are not supported, +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; + +  if (sem == NULL || *sem == NULL) +    { +	result = EINVAL; +    } + +#ifdef NEED_SEM + +  else if (! ptw32_increase_semaphore (sem, 1)) + +#else /* NEED_SEM */ + +  else if (! ReleaseSemaphore ((*sem)->sem, 1, 0)) + +#endif /* NEED_SEM */ + +    { +	result = EINVAL; +    } + +  if (result != 0) +    { +      errno = result; +      return -1; +    } + +  return 0; + +}				/* sem_post */ diff --git a/semaphore_postmultiple.c b/semaphore_postmultiple.c new file mode 100644 index 0000000..3218896 --- /dev/null +++ b/semaphore_postmultiple.c @@ -0,0 +1,107 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_postmultiple.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + + +int +sem_post_multiple (sem_t * sem, int count ) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function posts multiple wakeups to a semaphore. +      * +      * PARAMETERS +      *      sem +      * 	     pointer to an instance of sem_t +      * +      *      count +      * 	     counter, must be greater than zero. +      * +      * DESCRIPTION +      *      This function posts multiple wakeups to a semaphore. If there +      *      are waiting threads (or processes), n <= count are awakened; +      *      the semaphore value is incremented by count - n. +      * +      * RESULTS +      * 	     0		     successfully posted semaphore, +      * 	     -1 	     failed, error in errno +      * ERRNO +      * 	     EINVAL	     'sem' is not a valid semaphore +      * 			     or count is less than or equal to zero. +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; + +  if (sem == NULL || *sem == NULL || count <= 0) +    { +      result = EINVAL; +    } + +#ifdef NEED_SEM + +  else if (! ptw32_increase_semaphore (sem, count)) + +#else /* NEED_SEM */ + +  else if (! ReleaseSemaphore ((*sem)->sem, count, 0)) + +#endif /* NEED_SEM */ + +    { +      result = EINVAL; +    } + +  if (result != 0) +    { +      errno = result; +      return -1; +    } + +  return 0; + +}				/* sem_post_multiple */ diff --git a/semaphore_timedwait.c b/semaphore_timedwait.c new file mode 100644 index 0000000..083ee78 --- /dev/null +++ b/semaphore_timedwait.c @@ -0,0 +1,197 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_timedwait.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 + */ + +#ifndef _UWIN +#include <process.h> +#endif +#ifndef NEED_FTIME +#include <sys/timeb.h> +#endif + +#include "pthread.h" +#include "semaphore.h" +#include "implement.h" + + +int +sem_timedwait (sem_t * sem, const struct timespec * abstime) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function waits on a semaphore possibly until +      *      'abstime' time. +      * +      * PARAMETERS +      *      sem +      * 	     pointer to an instance of sem_t +      * +      *      abstime +      * 	     pointer to an instance of struct timespec +      * +      * DESCRIPTION +      *      This function waits on a semaphore. If the +      *      semaphore value is greater than zero, it decreases +      *      its value by one. If the semaphore value is zero, then +      *      the calling thread (or process) is blocked until it can +      *      successfully decrease the value or until interrupted by +      *      a signal. +      * +      *      If 'abstime' is a NULL pointer then this function will +      *      block until it can successfully decrease the value or +      *      until interrupted by a signal. +      * +      * RESULTS +      * 	     0		     successfully decreased semaphore, +      * 	     -1 	     failed, error in errno +      * ERRNO +      * 	     EINVAL	     'sem' is not a valid semaphore, +      * 	     ENOSYS	     semaphores are not supported, +      * 	     EINTR	     the function was interrupted by a signal, +      * 	     EDEADLK	     a deadlock condition was detected. +      * 	     ETIMEDOUT	     abstime elapsed before success. +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; + +#ifdef NEED_FTIME + +  struct timespec currSysTime; + +#else /* NEED_FTIME */ + +  struct _timeb currSysTime; + +#endif /* NEED_FTIME */ + +  const DWORD NANOSEC_PER_MILLISEC = 1000000; +  const DWORD MILLISEC_PER_SEC = 1000; +  DWORD milliseconds; + +  if (sem == NULL) +    { +      result = EINVAL; +    } +  else +    { +      if (abstime == NULL) +	{ +	  milliseconds = INFINITE; +	} +      else +	{ +	  /*  +	   * Calculate timeout as milliseconds from current system time.  +	   */ + +	  /* get current system time */ + +#ifdef NEED_FTIME + +	  { +	    FILETIME ft; +	    SYSTEMTIME st; + +	    GetSystemTime(&st); +	    SystemTimeToFileTime(&st, &ft); +	    /* +	     * GetSystemTimeAsFileTime(&ft); would be faster, +	     * but it does not exist on WinCE +	     */ + +	    filetime_to_timespec(&ft, &currSysTime); +	  } + +	  /* +	   * subtract current system time from abstime +	   */ +	  milliseconds = (abstime->tv_sec - currSysTime.tv_sec) * MILLISEC_PER_SEC; +	  milliseconds += ((abstime->tv_nsec - currSysTime.tv_nsec) + (NANOSEC_PER_MILLISEC/2)) / NANOSEC_PER_MILLISEC; + +#else /* NEED_FTIME */ +	  _ftime(&currSysTime); + +	  /* +	   * subtract current system time from abstime +	   */ +	  milliseconds = (abstime->tv_sec - currSysTime.time) * MILLISEC_PER_SEC; +	  milliseconds += ((abstime->tv_nsec + (NANOSEC_PER_MILLISEC/2)) / NANOSEC_PER_MILLISEC) - +	    currSysTime.millitm; + +#endif /* NEED_FTIME */ + + +	  if (((int) milliseconds) < 0) +	    milliseconds = 0; +	} + +#ifdef NEED_SEM + +      result = (pthreadCancelableTimedWait ((*sem)->event, milliseconds)); + +#else /* NEED_SEM */ + +      result = (pthreadCancelableTimedWait ((*sem)->sem, milliseconds)); + +#endif + +    } + +  if (result != 0) +    { + +      errno = result; +      return -1; + +    } + +#ifdef NEED_SEM + +  ptw32_decrease_semaphore(sem); + +#endif /* NEED_SEM */ + +  return 0; + +}				/* sem_timedwait */ diff --git a/semaphore_trywait.c b/semaphore_trywait.c new file mode 100644 index 0000000..6b20d38 --- /dev/null +++ b/semaphore_trywait.c @@ -0,0 +1,110 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + + +int +sem_trywait (sem_t * sem) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function tries to wait on a semaphore. +      * +      * PARAMETERS +      *      sem +      * 	     pointer to an instance of sem_t +      * +      * DESCRIPTION +      *      This function tries to wait on a semaphore. If the +      *      semaphore value is greater than zero, it decreases +      *      its value by one. If the semaphore value is zero, then +      *      this function returns immediately with the error EAGAIN +      * +      * RESULTS +      * 	     0		     successfully decreased semaphore, +      * 	     -1 	     failed, error in errno +      * ERRNO +      * 	     EAGAIN	     the semaphore was already locked, +      * 	     EINVAL	     'sem' is not a valid semaphore, +      * 	     ENOTSUP	     sem_trywait is not supported, +      * 	     EINTR	     the function was interrupted by a signal, +      * 	     EDEADLK	     a deadlock condition was detected. +      * +      * ------------------------------------------------------ +      */ +{ +#ifdef NEED_SEM + +  /* +   * not yet implemented! +   */ +  errno = ENOTSUP; +  return -1; + +#else /* NEED_SEM */ + +  int result = 0; + +  if (sem == NULL || *sem == NULL) +    { +      result = EINVAL; +    } +  else if (WaitForSingleObject ((*sem)->sem, 0) == WAIT_TIMEOUT) +    { +      result = EAGAIN; +    } + +  if (result != 0) +    { +      errno = result; +      return -1; +    } + +  return 0; + +#endif /* NEED_SEM */ + +}				/* sem_trywait */ diff --git a/semaphore_unlink.c b/semaphore_unlink.c new file mode 100644 index 0000000..8f20746 --- /dev/null +++ b/semaphore_unlink.c @@ -0,0 +1,58 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_unlink.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + +/* ignore warning "unreferenced formal parameter" */ +#ifdef _MSC_VER +#pragma warning( disable : 4100 ) +#endif + +int +sem_unlink (const char * name) +{ +  errno = ENOSYS; +  return -1; +}				/* sem_unlink */ diff --git a/semaphore_wait.c b/semaphore_wait.c new file mode 100644 index 0000000..33bdb9c --- /dev/null +++ b/semaphore_wait.c @@ -0,0 +1,115 @@ +/* + * ------------------------------------------------------------- + * + * Module: semaphore_wait.c + * + * Purpose: + *	Semaphores aren't actually part of the PThreads standard. + *	They are defined by the POSIX Standard: + * + *		POSIX 1003.1b-1993	(POSIX.1b) + * + * ------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" +#include "semaphore.h" +#include "implement.h" + + +int +sem_wait (sem_t * sem) +     /* +      * ------------------------------------------------------ +      * DOCPUBLIC +      *      This function  waits on a semaphore. +      * +      * PARAMETERS +      *      sem +      * 	     pointer to an instance of sem_t +      * +      * DESCRIPTION +      *      This function waits on a semaphore. If the +      *      semaphore value is greater than zero, it decreases +      *      its value by one. If the semaphore value is zero, then +      *      the calling thread (or process) is blocked until it can +      *      successfully decrease the value or until interrupted by +      *      a signal. +      * +      * RESULTS +      * 	     0		     successfully decreased semaphore, +      * 	     -1 	     failed, error in errno +      * ERRNO +      * 	     EINVAL	     'sem' is not a valid semaphore, +      * 	     ENOSYS	     semaphores are not supported, +      * 	     EINTR	     the function was interrupted by a signal, +      * 	     EDEADLK	     a deadlock condition was detected. +      * +      * ------------------------------------------------------ +      */ +{ +  int result = 0; + +  if (sem == NULL || *sem == NULL) +    { +      result = EINVAL; +    } +  else +    { + +#ifdef NEED_SEM + +	result = pthreadCancelableWait ((*sem)->event); + +#else /* NEED_SEM */ + +	result = pthreadCancelableWait ((*sem)->sem); + +#endif /* NEED_SEM */ + +    } + +  if (result != 0) +    { +      errno = result; +      return -1; +    } + +#ifdef NEED_SEM + +  ptw32_decrease_semaphore(sem); + +#endif /* NEED_SEM */ + +  return 0; + +}				/* sem_wait */ @@ -4,26 +4,34 @@   * Description:   * Thread-aware signal functions.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   */  /* @@ -4,26 +4,34 @@   * Description:   * This translation unit implements spin lock primitives.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" @@ -5,26 +5,34 @@   * This translation unit implements functions related to thread   * synchronisation.   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" diff --git a/tests/GNUmakefile b/tests/GNUmakefile index c18e444..fc0a7e3 100644 --- a/tests/GNUmakefile +++ b/tests/GNUmakefile @@ -1,5 +1,35 @@  # Makefile for the pthreads test suite.  # If all of the .pass files can be created, the test suite has passed. +# +# -------------------------------------------------------------------------- +# +#      Pthreads-win32 - POSIX Threads Library for Win32 +#      Copyright(C) 1998 John E. Bossom +#      Copyright(C) 1999,2002 Pthreads-win32 contributors +#  +#      Contact Email: rpj@ise.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 +#  #CP	= cp @@ -41,7 +71,8 @@ TESTS	= loadfree \  	  exit2 exit3 \  	  join0 join1 join2 mutex2 mutex3 mutex4 mutex6 mutex6n mutex6e mutex6r \  	  mutex7 mutex7n mutex7e mutex7r mutex8 mutex8n mutex8e mutex8r \ -	  count1 once1 tsd1 self2 cancel1 cancel2 eyal1 \ +	  count1 once1 tsd1 self2 cancel1 cancel2 \ +	  delay1 delay2 eyal1 \  	  condvar3 condvar3_1 condvar3_2 condvar3_3 \  	  condvar4 condvar5 condvar6 condvar7 condvar8 condvar9 \  	  errno1 \ @@ -51,7 +82,8 @@ TESTS	= loadfree \  	  priority1 priority2 inherit1 \  	  spin1 spin2 spin3 spin4 \  	  barrier1 barrier2 barrier3 barrier4 barrier5 \ -	  exception1 exception2 exception3 +	  exception1 exception2 exception3 \ +	  exit4  BENCHTESTS = \  	benchtest1 benchtest2 benchtest3 benchtest4 benchtest5 @@ -131,6 +163,8 @@ condvar9.pass: condvar8.pass  context1.pass: cancel2.pass  count1.pass: join1.pass  create1.pass: mutex2.pass +delay1.pass: cancel2.pass +delay2.pass: delay1.pass  equal1.pass: create1.pass  errno1.pass: mutex3.pass  exception1.pass: cancel4.pass @@ -139,6 +173,7 @@ exception3.pass: exception2.pass  exit1.pass:  exit2.pass: create1.pass  exit3.pass: create1.pass +exit4.pass: exit3.pass  eyal1.pass: tsd1.pass  inherit1.pass: join1.pass  join0.pass: create1.pass diff --git a/tests/Makefile b/tests/Makefile index 5f160cb..ad2a055 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,5 +1,35 @@  # Makefile for the pthreads test suite.
  # If all of the .pass files can be created, the test suite has passed.
 +#
 +# --------------------------------------------------------------------------
 +#
 +#      Pthreads-win32 - POSIX Threads Library for Win32
 +#      Copyright(C) 1998 John E. Bossom
 +#      Copyright(C) 1999,2002 Pthreads-win32 contributors
 +# 
 +#      Contact Email: rpj@ise.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
 +#
  CP	= copy
 @@ -53,7 +83,7 @@ PASSES= loadfree.pass \  	  count1.pass  once1.pass  tsd1.pass  \
  	  self2.pass  \
  	  cancel1.pass  cancel2.pass  \
 -	  eyal1.pass  \
 +	  delay1.pass  delay2.pass  eyal1.pass  \
  	  condvar3.pass  condvar3_1.pass  condvar3_2.pass  condvar3_3.pass  \
  	  condvar4.pass  condvar5.pass  condvar6.pass  \
  	  condvar7.pass  condvar8.pass  condvar9.pass  \
 @@ -65,7 +95,8 @@ PASSES= loadfree.pass \  	  priority1.pass priority2.pass inherit1.pass  \
  	  spin1.pass  spin2.pass  spin3.pass  spin4.pass  \
  	  barrier1.pass  barrier2.pass  barrier3.pass  barrier4.pass  barrier5.pass  \
 -	  exception1.pass  exception2.pass  exception3.pass
 +	  exception1.pass  exception2.pass  exception3.pass  \
 +	  exit4
  BENCHRESULTS = \
  	  benchtest1.bench benchtest2.bench benchtest3.bench benchtest4.bench benchtest5.bench
 @@ -197,6 +228,8 @@ condvar9.pass: condvar8.pass  context1.pass: cancel2.pass
  count1.pass: join1.pass
  create1.pass: mutex2.pass
 +delay1.pass:
 +delay2.pass: delay1.pass
  equal1.pass: create1.pass
  errno1.pass: mutex3.pass
  exception1.pass: cancel4.pass
 @@ -205,6 +238,7 @@ exception3.pass: exception2.pass  exit1.pass:
  exit2.pass: create1.pass
  exit3.pass: create1.pass
 +exit4.pass: exit3.pass
  eyal1.pass: tsd1.pass
  inherit1.pass: join1.pass
  join0.pass: create1.pass
 diff --git a/tests/barrier1.c b/tests/barrier1.c index 13d7090..98cef61 100644 --- a/tests/barrier1.c +++ b/tests/barrier1.c @@ -2,25 +2,36 @@   * barrier1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/barrier2.c b/tests/barrier2.c index 77645c7..1e3755e 100644 --- a/tests/barrier2.c +++ b/tests/barrier2.c @@ -2,25 +2,36 @@   * barrier2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/barrier3.c b/tests/barrier3.c index 2ca1c9f..1db408f 100644 --- a/tests/barrier3.c +++ b/tests/barrier3.c @@ -2,25 +2,36 @@   * barrier3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/barrier4.c b/tests/barrier4.c index 5c7f300..3be6ef1 100644 --- a/tests/barrier4.c +++ b/tests/barrier4.c @@ -2,25 +2,36 @@   * barrier4.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/barrier5.c b/tests/barrier5.c index 0681906..3977f03 100644 --- a/tests/barrier5.c +++ b/tests/barrier5.c @@ -2,25 +2,36 @@   * barrier5.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/benchtest.h b/tests/benchtest.h index e52744b..f6a6ca5 100644 --- a/tests/benchtest.h +++ b/tests/benchtest.h @@ -1,25 +1,36 @@  /*   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au + * --------------------------------------------------------------------------   * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   */ diff --git a/tests/benchtest1.c b/tests/benchtest1.c index 2d2e122..b4dbdae 100644 --- a/tests/benchtest1.c +++ b/tests/benchtest1.c @@ -2,25 +2,36 @@   * benchtest1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/benchtest2.c b/tests/benchtest2.c index 0d9aded..e1362d1 100644 --- a/tests/benchtest2.c +++ b/tests/benchtest2.c @@ -2,25 +2,36 @@   * benchtest1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/benchtest3.c b/tests/benchtest3.c index 93ebccc..4de6488 100644 --- a/tests/benchtest3.c +++ b/tests/benchtest3.c @@ -2,25 +2,36 @@   * benchtest3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/benchtest4.c b/tests/benchtest4.c index 1bccaff..653b0ed 100644 --- a/tests/benchtest4.c +++ b/tests/benchtest4.c @@ -2,25 +2,36 @@   * benchtest4.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/benchtest5.c b/tests/benchtest5.c index 0b7035f..b7d3225 100644 --- a/tests/benchtest5.c +++ b/tests/benchtest5.c @@ -2,25 +2,36 @@   * benchtest5.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cancel1.c b/tests/cancel1.c index 3be8848..3e5a2ff 100644 --- a/tests/cancel1.c +++ b/tests/cancel1.c @@ -2,25 +2,36 @@   * File: cancel1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cancel2.c b/tests/cancel2.c index 0edc923..32c48ca 100644 --- a/tests/cancel2.c +++ b/tests/cancel2.c @@ -2,25 +2,36 @@   * File: cancel2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cancel3.c b/tests/cancel3.c index cd24a47..1e0f981 100644 --- a/tests/cancel3.c +++ b/tests/cancel3.c @@ -2,25 +2,36 @@   * File: cancel3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cancel4.c b/tests/cancel4.c index ec9c1e1..631d561 100644 --- a/tests/cancel4.c +++ b/tests/cancel4.c @@ -2,25 +2,36 @@   * File: cancel4.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cancel5.c b/tests/cancel5.c index fd83290..6ac938b 100644 --- a/tests/cancel5.c +++ b/tests/cancel5.c @@ -2,25 +2,36 @@   * File: cancel5.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cleanup0.c b/tests/cleanup0.c index a237be4..a5eec4d 100644 --- a/tests/cleanup0.c +++ b/tests/cleanup0.c @@ -2,25 +2,36 @@   * File: cleanup1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cleanup1.c b/tests/cleanup1.c index a5313d9..67f8639 100644 --- a/tests/cleanup1.c +++ b/tests/cleanup1.c @@ -2,25 +2,36 @@   * File: cleanup1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cleanup2.c b/tests/cleanup2.c index 5db9e58..b4cd12f 100644 --- a/tests/cleanup2.c +++ b/tests/cleanup2.c @@ -2,25 +2,36 @@   * File: cleanup2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/cleanup3.c b/tests/cleanup3.c index c98dd62..cfedb03 100644 --- a/tests/cleanup3.c +++ b/tests/cleanup3.c @@ -2,25 +2,36 @@   * File: cleanup3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar1.c b/tests/condvar1.c index 33b64b3..424e36c 100644 --- a/tests/condvar1.c +++ b/tests/condvar1.c @@ -2,25 +2,36 @@   * File: condvar1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar2.c b/tests/condvar2.c index ed8d21b..45e9684 100644 --- a/tests/condvar2.c +++ b/tests/condvar2.c @@ -2,25 +2,36 @@   * File: condvar2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar2_1.c b/tests/condvar2_1.c index bd01275..be0537c 100644 --- a/tests/condvar2_1.c +++ b/tests/condvar2_1.c @@ -2,25 +2,36 @@   * File: condvar2_1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar3.c b/tests/condvar3.c index beebca1..b6532ae 100644 --- a/tests/condvar3.c +++ b/tests/condvar3.c @@ -2,25 +2,36 @@   * File: condvar3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar3_1.c b/tests/condvar3_1.c index 2a3c4bb..e181c58 100644 --- a/tests/condvar3_1.c +++ b/tests/condvar3_1.c @@ -2,25 +2,36 @@   * File: condvar3_1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar3_2.c b/tests/condvar3_2.c index f8ac69a..055cc82 100644 --- a/tests/condvar3_2.c +++ b/tests/condvar3_2.c @@ -2,25 +2,36 @@   * File: condvar3_2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar3_3.c b/tests/condvar3_3.c index 7cf547b..1243362 100644 --- a/tests/condvar3_3.c +++ b/tests/condvar3_3.c @@ -2,25 +2,36 @@   * File: condvar3_3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar4.c b/tests/condvar4.c index 30aa50b..8a4081e 100644 --- a/tests/condvar4.c +++ b/tests/condvar4.c @@ -2,25 +2,36 @@   * File: condvar4.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar5.c b/tests/condvar5.c index ca55906..45e1d61 100644 --- a/tests/condvar5.c +++ b/tests/condvar5.c @@ -2,25 +2,36 @@   * File: condvar5.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar6.c b/tests/condvar6.c index 033b167..81785c6 100644 --- a/tests/condvar6.c +++ b/tests/condvar6.c @@ -2,25 +2,36 @@   * File:    *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar7.c b/tests/condvar7.c index 6ac52f7..7629509 100644 --- a/tests/condvar7.c +++ b/tests/condvar7.c @@ -2,25 +2,36 @@   * File: condvar7.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar8.c b/tests/condvar8.c index 48486d4..a083787 100644 --- a/tests/condvar8.c +++ b/tests/condvar8.c @@ -2,25 +2,36 @@   * File: condvar8.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/condvar9.c b/tests/condvar9.c index bdf10df..aa91963 100644 --- a/tests/condvar9.c +++ b/tests/condvar9.c @@ -2,25 +2,36 @@   * File: condvar9.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/context1.c b/tests/context1.c index 61677f6..057e549 100644 --- a/tests/context1.c +++ b/tests/context1.c @@ -2,48 +2,38 @@   * File: context1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - *   * --------------------------------------------------------------------------   * + * --------------------------------------------------------------------------   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/count1.c b/tests/count1.c index 9c42fe8..d30578d 100644 --- a/tests/count1.c +++ b/tests/count1.c @@ -2,25 +2,36 @@   * count1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/create1.c b/tests/create1.c index 0a7a379..b649c19 100644 --- a/tests/create1.c +++ b/tests/create1.c @@ -2,25 +2,36 @@   * create1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/create2.c b/tests/create2.c index a9db506..ea2979f 100644 --- a/tests/create2.c +++ b/tests/create2.c @@ -2,25 +2,36 @@   * File: create2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/equal1.c b/tests/equal1.c index 5286371..ddfe718 100644 --- a/tests/equal1.c +++ b/tests/equal1.c @@ -2,25 +2,36 @@   * Test for pthread_equal.   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/errno1.c b/tests/errno1.c index 53e6695..e47c0db 100644 --- a/tests/errno1.c +++ b/tests/errno1.c @@ -2,25 +2,36 @@   * File: errn1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/exception1.c b/tests/exception1.c index 09c27a7..f8d27e7 100644 --- a/tests/exception1.c +++ b/tests/exception1.c @@ -2,25 +2,36 @@   * File: exception1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *	Pthreads-win32 - POSIX Threads Library for Win32 + *	Copyright(C) 1998 John E. Bossom + *	Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *	Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * @@ -89,10 +100,10 @@ exceptionedThread(void * arg)  #if defined(_MSC_VER) && !defined(__cplusplus)    __try    { -    int zero = 0; +    int zero = (int) arg; /* Passed in from arg to avoid compiler error */      int one = 1;      /* -     * The deliberate exception condition (zero devide) is +     * The deliberate exception condition (zero divide) is       * in an "if" to avoid being optimised out.       */      if (dummy == one/zero) @@ -191,7 +202,7 @@ main()    for (i = 0; i < NUMTHREADS; i++)      { -      assert(pthread_create(&et[i], NULL, exceptionedThread, NULL) == 0); +      assert(pthread_create(&et[i], NULL, exceptionedThread, (void *) 0) == 0);        assert(pthread_create(&ct[i], NULL, canceledThread, NULL) == 0);      } diff --git a/tests/exception2.c b/tests/exception2.c index faea23e..9c99dd3 100644 --- a/tests/exception2.c +++ b/tests/exception2.c @@ -2,25 +2,36 @@   * File: exception2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/exception3.c b/tests/exception3.c index 08f88a7..5faa3e1 100644 --- a/tests/exception3.c +++ b/tests/exception3.c @@ -2,25 +2,36 @@   * File: exception3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/exit1.c b/tests/exit1.c index 9286b03..823e1bd 100644 --- a/tests/exit1.c +++ b/tests/exit1.c @@ -2,25 +2,36 @@   * Test for pthread_exit().   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/exit2.c b/tests/exit2.c index 15c8d41..cc09127 100644 --- a/tests/exit2.c +++ b/tests/exit2.c @@ -2,25 +2,36 @@   * Test for pthread_exit().   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/exit3.c b/tests/exit3.c index fac4ea4..4df45fb 100644 --- a/tests/exit3.c +++ b/tests/exit3.c @@ -2,25 +2,36 @@   * Test for pthread_exit().   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/exit4.c b/tests/exit4.c new file mode 100644 index 0000000..3c0c8b1 --- /dev/null +++ b/tests/exit4.c @@ -0,0 +1,93 @@ +/* + * Test for pthread_exit(). + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 + * + * -------------------------------------------------------------------------- + * + * Depends on API functions: pthread_create(). + */ + +#include "test.h" + +#ifdef __CLEANUP_CXX + +#define USE_PTHREAD_EXIT +static const int init_counter_value = 3; +static void *ret_value = reinterpret_cast<void *>(1); +static int counter = init_counter_value; + +class Guard +{ +    const char * const _str; +    int &_ref; +    Guard &operator=(const Guard&); +    Guard(const Guard&); +public: +    Guard(const char * const str, int &ref) : _str(str), _ref(ref) { +        printf("Construct %s [%d->%d]\n", _str, _ref, _ref+++1); +    }; +    ~Guard() { +        printf("~Destruct %s [%d->%d]\n", _str, _ref, _ref---1); +    }; +}; + + +void * +func(void * arg) +{ +    Guard g("func", counter); +#ifdef USE_PTHREAD_EXIT +    pthread_exit(arg); +    assert(0); //Never reached with pthread_exit +#endif //USE_PTHREAD_EXIT +    return ret_value; +} + + +#endif /*__CLEANUP_CXX */ + +int main(int, char **) +{ +#ifndef __CLEANUP_CXX +    printf("Test requires C++ cleanup enabled. Skipped.\n"); +#else +    { +        void *ret = 0; +        Guard g("main", counter); +        pthread_t id; +        assert(0 == pthread_create(&id, 0, func, ret_value)); +        assert(0 == pthread_join(id, &ret)); +        assert(ret == ret_value); +    } +    assert(counter == init_counter_value); +#endif /*__CLEANUP_CXX */ +    return 0; +} diff --git a/tests/eyal1.c b/tests/eyal1.c index c63004d..72a127f 100644 --- a/tests/eyal1.c +++ b/tests/eyal1.c @@ -1,25 +1,36 @@  /* Simple POSIX threads program.   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/inherit1.c b/tests/inherit1.c index 57b6ff2..f55f958 100644 --- a/tests/inherit1.c +++ b/tests/inherit1.c @@ -2,25 +2,36 @@   * File: inherit1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/join0.c b/tests/join0.c index a1f0868..2ab7010 100644 --- a/tests/join0.c +++ b/tests/join0.c @@ -2,25 +2,36 @@   * Test for pthread_join().   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/join1.c b/tests/join1.c index 8919b59..24a62b3 100644 --- a/tests/join1.c +++ b/tests/join1.c @@ -2,25 +2,36 @@   * Test for pthread_join().   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/join2.c b/tests/join2.c index e3c5b5a..90c8901 100644 --- a/tests/join2.c +++ b/tests/join2.c @@ -2,25 +2,36 @@   * Test for pthread_join() returning return value from threads.   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/loadfree.c b/tests/loadfree.c index 979f737..9cb6999 100644 --- a/tests/loadfree.c +++ b/tests/loadfree.c @@ -1,25 +1,36 @@  /*   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * From: Todd Owen <towen@lucidcalm.dropbear.id.au> diff --git a/tests/mutex1.c b/tests/mutex1.c index ede0312..db6a746 100644 --- a/tests/mutex1.c +++ b/tests/mutex1.c @@ -2,25 +2,36 @@   * mutex1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex1e.c b/tests/mutex1e.c index 10ceda8..5a6e5a2 100644 --- a/tests/mutex1e.c +++ b/tests/mutex1e.c @@ -2,25 +2,36 @@   * mutex1e.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex1n.c b/tests/mutex1n.c index 858de42..48bbdfd 100644 --- a/tests/mutex1n.c +++ b/tests/mutex1n.c @@ -2,25 +2,36 @@   * mutex1n.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex1r.c b/tests/mutex1r.c index 907e11c..045a1aa 100644 --- a/tests/mutex1r.c +++ b/tests/mutex1r.c @@ -2,25 +2,36 @@   * mutex1r.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex2.c b/tests/mutex2.c index 28d8d9d..0bcee4a 100644 --- a/tests/mutex2.c +++ b/tests/mutex2.c @@ -2,25 +2,36 @@   * mutex2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex3.c b/tests/mutex3.c index d3b3c20..a6d1758 100644 --- a/tests/mutex3.c +++ b/tests/mutex3.c @@ -2,25 +2,36 @@   * mutex3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex4.c b/tests/mutex4.c index 459cb2a..17a98ea 100644 --- a/tests/mutex4.c +++ b/tests/mutex4.c @@ -2,25 +2,36 @@   * mutex4.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex5.c b/tests/mutex5.c index 2619ece..a3813d3 100644 --- a/tests/mutex5.c +++ b/tests/mutex5.c @@ -2,25 +2,36 @@   * mutex5.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex6.c b/tests/mutex6.c index dc14c46..9221481 100644 --- a/tests/mutex6.c +++ b/tests/mutex6.c @@ -2,25 +2,36 @@   * mutex6.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex6e.c b/tests/mutex6e.c index ed44502..1b6ca70 100644 --- a/tests/mutex6e.c +++ b/tests/mutex6e.c @@ -2,25 +2,36 @@   * mutex6e.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex6n.c b/tests/mutex6n.c index e006f24..63e6290 100644 --- a/tests/mutex6n.c +++ b/tests/mutex6n.c @@ -2,25 +2,36 @@   * mutex6n.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex6r.c b/tests/mutex6r.c index 61d2eca..d961934 100644 --- a/tests/mutex6r.c +++ b/tests/mutex6r.c @@ -2,25 +2,36 @@   * mutex6r.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex7.c b/tests/mutex7.c index 9b0c9d0..316e400 100644 --- a/tests/mutex7.c +++ b/tests/mutex7.c @@ -2,25 +2,36 @@   * mutex7.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex7e.c b/tests/mutex7e.c index 95b339c..5b8e68f 100644 --- a/tests/mutex7e.c +++ b/tests/mutex7e.c @@ -2,25 +2,36 @@   * mutex7e.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex7n.c b/tests/mutex7n.c index d3f2206..6d9dd99 100644 --- a/tests/mutex7n.c +++ b/tests/mutex7n.c @@ -2,25 +2,36 @@   * mutex7n.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/mutex7r.c b/tests/mutex7r.c index febac75..f661145 100644 --- a/tests/mutex7r.c +++ b/tests/mutex7r.c @@ -2,25 +2,36 @@   * mutex7r.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/once1.c b/tests/once1.c index 9291d83..63e0c63 100644 --- a/tests/once1.c +++ b/tests/once1.c @@ -2,25 +2,36 @@   * once1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/priority1.c b/tests/priority1.c index 8af3275..1865c3e 100644 --- a/tests/priority1.c +++ b/tests/priority1.c @@ -2,25 +2,36 @@   * File: priority1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/priority2.c b/tests/priority2.c index c7be521..facd6dd 100644 --- a/tests/priority2.c +++ b/tests/priority2.c @@ -2,25 +2,36 @@   * File: priority2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/rwlock1.c b/tests/rwlock1.c index 3f69c23..72bce85 100644 --- a/tests/rwlock1.c +++ b/tests/rwlock1.c @@ -2,25 +2,36 @@   * rwlock1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/rwlock2.c b/tests/rwlock2.c index 4491693..67b5286 100644 --- a/tests/rwlock2.c +++ b/tests/rwlock2.c @@ -2,25 +2,36 @@   * rwlock2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/rwlock3.c b/tests/rwlock3.c index 93249d7..65aa379 100644 --- a/tests/rwlock3.c +++ b/tests/rwlock3.c @@ -2,25 +2,36 @@   * rwlock3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/rwlock4.c b/tests/rwlock4.c index d37156d..6605bf6 100644 --- a/tests/rwlock4.c +++ b/tests/rwlock4.c @@ -2,25 +2,36 @@   * rwlock4.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/rwlock5.c b/tests/rwlock5.c index 660f41e..43e2c6a 100644 --- a/tests/rwlock5.c +++ b/tests/rwlock5.c @@ -2,25 +2,36 @@   * rwlock5.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/rwlock6.c b/tests/rwlock6.c index 6480161..78fd7b3 100644 --- a/tests/rwlock6.c +++ b/tests/rwlock6.c @@ -2,25 +2,36 @@   * rwlock6.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/self1.c b/tests/self1.c index f342948..523314c 100644 --- a/tests/self1.c +++ b/tests/self1.c @@ -2,25 +2,36 @@   * self1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/self2.c b/tests/self2.c index e279fa4..52f73b8 100644 --- a/tests/self2.c +++ b/tests/self2.c @@ -2,25 +2,36 @@   * self2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/spin1.c b/tests/spin1.c index 0a4af9a..c39ca5a 100644 --- a/tests/spin1.c +++ b/tests/spin1.c @@ -2,25 +2,36 @@   * spin1.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/spin2.c b/tests/spin2.c index 289fe35..c38318e 100644 --- a/tests/spin2.c +++ b/tests/spin2.c @@ -2,25 +2,36 @@   * spin2.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/spin3.c b/tests/spin3.c index 04f39ee..f2c3eaf 100644 --- a/tests/spin3.c +++ b/tests/spin3.c @@ -2,25 +2,36 @@   * spin3.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/spin4.c b/tests/spin4.c index 4d8cc23..1287a7f 100644 --- a/tests/spin4.c +++ b/tests/spin4.c @@ -2,25 +2,36 @@   * spin4.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/test.h b/tests/test.h index 07dc788..9a03890 100644 --- a/tests/test.h +++ b/tests/test.h @@ -4,25 +4,36 @@   * Useful definitions and declarations for tests.   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au + * --------------------------------------------------------------------------   * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   */ diff --git a/tests/tryentercs.c b/tests/tryentercs.c index c8f53d8..fb66449 100644 --- a/tests/tryentercs.c +++ b/tests/tryentercs.c @@ -2,25 +2,36 @@   * tryentercs.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/tryentercs2.c b/tests/tryentercs2.c index f1fb11c..64654d3 100644 --- a/tests/tryentercs2.c +++ b/tests/tryentercs2.c @@ -2,25 +2,36 @@   * tryentercs.c   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   * --------------------------------------------------------------------------   * diff --git a/tests/tsd1.c b/tests/tsd1.c index 360b749..16483a9 100644 --- a/tests/tsd1.c +++ b/tests/tsd1.c @@ -4,25 +4,36 @@   * Test Thread Specific Data (TSD) key creation and destruction.   *   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson - * - * Contact Email: rpj@ise.canberra.edu.au - * - * 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.1 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; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + * -------------------------------------------------------------------------- + * + * -------------------------------------------------------------------------- + * + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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   *   *   * Description: @@ -4,26 +4,34 @@   * Description:   * POSIX thread functions which implement thread-specific data (TSD).   * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright (C) 1998 Ben Elliston and Ross Johnson - * Copyright (C) 1999,2000,2001 Ross Johnson + * --------------------------------------------------------------------------   * - * Contact Email: rpj@ise.canberra.edu.au - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA + *      Pthreads-win32 - POSIX Threads Library for Win32 + *      Copyright(C) 1998 John E. Bossom + *      Copyright(C) 1999,2002 Pthreads-win32 contributors + *  + *      Contact Email: rpj@ise.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 "pthread.h" | 
