summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2000-08-062000-08-06 Ross Johnson <rpj@special.ise.canberra.edu.au>rpj
* pthread.h: Remove #warning - VC++ doesn't accept it. 2000-08-05 Ross Johnson <rpj@special.ise.canberra.edu.au> * pthread.h (PtW32CatchAll): Add macro. When compiling applications using VC++ with C++ EH rather than SEH 'PtW32CatchAll' must be used in place of any 'catch( ... )' if the application wants pthread cancelation or pthread_exit() to work. 2000-08-03 Ross Johnson <rpj@special.ise.canberra.edu.au> * pthread.h: Add a base class Pthread_exception for library internal exceptions and change the "catch" re-define macro to use it. 2000-08-02 Ross Johnson <rpj@special.ise.canberra.edu.au> * GNUmakefile (CFLAGS): Add -mthreads. Add new targets to generate cpp and asm output. * sync.c (pthread_join): Remove dead code. tests: 2000-08-06 Ross Johnson <rpj@special.ise.canberra.edu.au> * ccl.bat: Add /nologo to remove extraneous output. * exception1.c (exceptionedThread): Init 'dummy'; put expression into if condition to prevent optimising away; remove unused variable. * cancel4.c (mythread): Cast return value to avoid warnings. * cancel2.c (mythread): Missing #endif. * condvar9.c (mythread): Cast return value to avoid warnings. * condvar8.c (mythread): Cast return value to avoid warnings. * condvar7.c (mythread): Cast return value to avoid warnings. * cleanup3.c (mythread): Cast return value to avoid warnings. * cleanup2.c (mythread): Cast return value to avoid warnings. * cleanup1.c (mythread): Cast return value to avoid warnings. * condvar5.c (mythread): Cast return value to avoid warnings. * condvar3.c (mythread): Cast return value to avoid warnings. * condvar6.c (mythread): Cast return value to avoid warnings. * condvar4.c (mythread): Cast return value to avoid warnings. 2000-08-05 Ross Johnson <rpj@special.ise.canberra.edu.au> * cancel2.c: Use PtW32CatchAll macro if defined. * exception1.c: Use PtW32CatchAll macro if defined. 2000-08-02 Ross Johnson <rpj@special.ise.canberra.edu.au> * tsd1.c: Fix typecasts of &result [g++ is now very fussy]. * test.h (assert): Return 0's explicitly to allay g++ errors. * join2.c: Add explicit typecasts. * join1.c: Add explicit typecasts. * join0.c: Add explicit typecasts. * eyal1.c: Add explicit typecasts. * count1.c (main): Add type cast to remove g++ parse warning [gcc-2.95.2 seems to have tightened up on this]. * Makefile (GLANG): Use c++ explicitly. Remove MSVC sections (was commented out). Add target to generate cpp output.
2000-07-25New tests omitted from last commit.rpj
2000-07-252000-07-25 Ross Johnson <rpj@special.ise.canberra.edu.au>rpj
* sched.c (sched_get_priority_max): Handle different WinCE and Win32 priority values together. (sched_get_priority_min): Ditto. - Tristan Savatier <tristan@mpegtv.com> * create.c (pthread_create): Force new threads to wait until pthread_create has the new thread's handle; we also retain a local copy of the handle for internal use until pthread_create returns. * private.c (_pthread_threadStart): Initialise ei[]. (_pthread_threadStart): When beginthread is used to start the thread, force waiting until the creator thread had the thread handle. * cancel.c (_pthread_cancel_thread): Include context switch code for defined(_X86_) environments in addition to _M_IX86. * rwlock.c (pthread_rwlock_destroy): Assignment changed to avoid compiler warning. * private.c (_pthread_get_exception_services_code): Cast NULL return value to avoid compiler warning. * cleanup.c (pthread_pop_cleanup): Initialise "cleanup" variable to avoid compiler warnings. * misc.c (_pthread_new): Change "new" variable to "t" to avoid confusion with the C++ keyword of the same name. * condvar.c (cond_wait_cleanup): Initialise lastWaiter variable. (cond_timedwait): Remove unused local variables. to avoid compiler warnings. * dll.c (dllMain): Remove 2000-07-21 change - problem appears to be in pthread_create(). 2000-07-22 Ross Johnson <rpj@special.ise.canberra.edu.au> * tsd.c (pthread_key_create): If a destructor was given and the pthread_mutex_init failed, then would try to reference a NULL pointer (*key); eliminate this section of code by using a dynamically initialised mutex (PTHREAD_MUTEX_INITIALIZER). * tsd.c (pthread_setspecific): Return an error if unable to set the value; simplify cryptic conditional. * tsd.c (pthread_key_delete): Locking threadsLock relied on mutex_lock returning an error if the key has no destructor. ThreadsLock is only initialised if the key has a destructor. Making this mutex a static could reduce the number of mutexes used by an application since it is actually created only at first use and it's often destroyed soon after. 2000-07-22 Ross Johnson <rpj@special.ise.canberra.edu.au> * FAQ: Added Q5 and Q6. tests/ChangeLog: 2000-07-25 Ross Johnson <rpj@special.ise.canberra.edu.au> * runtest.bat: modified to work under W98. * runall.bat: Add new tests; modified to work under W98. It was ok under NT. * Makefile: Add new tests. * exception1.c: New; Test passing exceptions back to the application and retaining library internal exceptions. * join0.c: New; Test a single join.
2000-07-252000-07-25 Ross Johnson <rpj@setup1.ise.canberra.edu.au>rpj
* dll.c (dllMain): Remove 2000-07-21 change - problem appears to be in pthread_create(). 2000-07-21 Ross Johnson <rpj@setup1.ise.canberra.edu.au> * create.c (pthread_create): Set threadH to 0 (zero) everywhere. Some assignments were using NULL. Maybe it should be NULL everywhere - need to check. (I know 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. * tsd.c (pthread_setspecific): return an error value if pthread_self() returns NULL. * sync.c (pthread_join): return an error value if pthread_self() returns NULL. * signal.c (pthread_sigmask): return an error value if pthread_self() returns NULL.
2000-02-04Minor admin changes.rpj
2000-01-07Minor changes.rpj
2000-01-06New cleanup handler execution tests.rpj
2000-01-052000-01-06 Ross Johnson <rpj@special.ise.canberra.edu.au>rpj
* Makefile: Remove inconsistencies in 'cl' args - Erik Hensema <erik.hensema@group2000.nl>
2000-01-05Update the FAQ question 4 for async cancelation.rpj
2000-01-05*** empty log message ***rpj
2000-01-04Main changes (see ChangeLog diff for details and attributions):-rpj
- asynchronous cancellation added - attempt to hide internal exceptions from applications - kernel32 load/free problem fixed - new tests - changes only to comments in some tests
1999-12-09*** empty log message ***rpj
1999-11-05 * pthread.h (winsock.h): Include unconditionally.rpj
(ETIMEDOUT): Change fallback value to that defined by winsock.h.
1999-11-041999-11-05 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* 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-11-02*** empty log message ***snap-1999-11-02rpj
1999-11-02*** empty log message ***rpj
1999-10-30./ChangeLog:rpj
1999-10-30 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * create.c (pthread_create): Explicitly initialise thread state to default values. * 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> * pthread.h (ctime_r): Fix incorrect argument "_tm" - Erik Hensema <erik.hensema@group2000.nl> tests/ChangeLog: 1999-10-30 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * cancel1.c: New. Test pthread_setcancelstate and pthread_setcanceltype functions. * eyal1.c (waste_time): Change calculation to avoid FP exception on Aplhas - Rich Peters <rpeters@micro-magic.com>
1999-10-211999-10-21 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* 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-16*** empty log message ***snap-1999-10-17rpj
1999-10-161999-10-17 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* rwlock.c (pthread_rwlock_destroy): Add cast to remove compile warning. * condvar.c (pthread_cond_broadcast): Only release semaphores if there are waiting threads. 1999-10-15 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * condvar.c (cond_wait_cleanup): New static cleanup handler for cond_timedwait; (cond_timedwait): pthread_cleanup_push args changed; 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-09-23*** empty log message ***rpj
1999-09-17*** empty log message ***snap-1999-09-17rpj
1999-09-16*** empty log message ***rpj
1999-09-16Sep 16 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* rwlock6.c: New test.
1999-09-16Thu Sep 16 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* rwlock.c (pthread_rwlock_destroy): Add serialisation. (_rwlock_check_need_init): Check for detroyed rwlock. * rwlock.c: Check return codes from _rwlock_check_need_init(); modify comments; serialise access to rwlock objects during operations; rename rw_mutex to rw_lock. * implement.h: Rename rw_mutex to rw_lock. * mutex.c (pthread_mutex_destroy): Add serialisation. (_mutex_check_need_init): Check for detroyed mutex. * condvar.c (pthread_cond_destroy): Add serialisation. (_cond_check_need_init): Check for detroyed condvar. * mutex.c: Modify comments. * condvar.c: Modify comments.
1999-09-15Add rwlock tests to tests/Makefilerpj
1999-09-15Sep 15 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* rwlock5.c: New test.
1999-09-15Sat Sep 10 12:56:13 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
The following code for POSIX read/write locks was contributed by Aurelio Medina. * implement.h (pthread_rwlock_t_): Add. * pthread.h (pthread_rwlock_t): Add. (PTHREAD_RWLOCK_INITIALIZER): Add. Add rwlock function prototypes. * rwlock.c: New module. * pthread.def: Add new rwlock functions. * private.c (_pthread_processInitialize): initialise _pthread_rwlock_test_init_lock critical section. * global.c (_pthread_rwlock_test_init_lock): Add. * mutex.c (pthread_mutex_destroy): Don't free mutex memory if mutex is PTHREAD_MUTEX_INITIALIZER and has not been initialised yet. tests/ChangeLog Sep 15 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * rwlock1.c: New test. * rwlock2.c: New test. * rwlock3.c: New test. * rwlock4.c: New test.
1999-09-11Sat Sep 10 12:56:13 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* mutex.c (pthread_mutex_destroy): Don't free mutex memory if mutex is PTHREAD_MUTEX_INITIALIZER and has not been initialised yet.
1999-09-10Wed Sep 8 12:56:13 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* mutex.c (pthread_mutex_destroy): Free mutex memory. - Milan Gardian <mg@tatramed.sk>
1999-08-221999-08-22 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* exit.c (pthread_exit): Fix reference to potentially uninitialised pointer. 1999-08-21 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * private.c (_pthread_threadStart): Apply fix of 1999-08-19 this time to C++ and non-trapped C versions. Ommitted to do this the first time through. tests/ChangeLog: Aug 22 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * runall.bat (join2): Add test.
1999-08-191999-08-19 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* private.c (_pthread_threadStart): Return exit status from the application thread startup routine. - Milan Gardian <mg@tatramed.sk> 1999-08-18 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * exit.c (pthread_exit): Put status into pthread_t->exitStatus - John Bossom <john.Bossom@cognos.com> * private.c (_pthread_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> * create.c (pthread_create): Add CRTDLL suppport. * exit.c (pthread_exit): Likewise. * private.c (_pthread_threadStart): Likewise. (_pthread_threadDestroy): Likewise. * sync.c (pthread_join): Likewise. * tests/join1.c (main): Warn about partial support for CRTDLL. Tue Aug 17 20:00:08 1999 Mumit Khan <khan@xraylith.wisc.edu> * Makefile.in (LD): Delete entry point. * acconfig.h (STDCALL): Delete unused macro. * configure.in: Remove test for STDCALL. * config.h.in: Regenerate. * errno.c (_errno): Fix self type. * pthread.h (PT_STDCALL): Move from here to * implement.h (PT_STDCALL): here. (_pthread_threadStart): Fix prototype. * private.c (_pthread_threadStart): Likewise. 1999-08-14 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * exit.c (pthread_exit): Don't call pthread_self() but get thread handle directly from TSD for efficiency.
1999-08-131999-08-14 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* exit.c (pthread_exit): Don't call pthread_self() but get thread handle directly for efficiency.
1999-08-12Update the announcement document.snap-1999-08-12rpj
1999-08-12ChangeLog:rpj
1999-08-12 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * private.c (_pthread_threadStart): ei[] only declared if _MSC_VER. tests/ChangeLog: Wed Aug 12 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * Makefile (LIBS): Add -L.
1999-08-12Merged patches to main trunk.rpj
1999-05-29Added.snap-1999-05-30rpj
1999-05-29Updated.rpj
1999-05-29Sun May 30 00:25:02 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* semaphore.h (mode_t): Conditionally typedef it.
1999-05-29./ChangeLogrpj
Sat May 8 09:42:30 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * pthread.def (sem_open): Add. (sem_close): Add. (sem_unlink): Add. (sem_getvalue): Add. * FAQ (Question 3): Add. Thu Apr 8 01:16:23 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * semaphore.c (sem_open): New function; returns an error (ENOSYS). (sem_close): ditto. (sem_unlink): ditto. (sem_getvalue): ditto. * semaphore.h (_POSIX_SEMAPHORES): define. ./tests/ChangeLog Sat May 29 23:29:04 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * runall.bat (condvar5): Add new test. * runall.bat (condvar6): Add new test. * Makefile (condvar5) : Add new test. * Makefile (condvar6) : Add new test. * condvar5.c: New test for pthread_cond_broadcast(). * condvar6.c: New test for pthread_cond_broadcast().
1999-05-27Fri May 28 13:33:05 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* 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> * condvar.c (pthread_cond_broadcast): Fix logic bug - Peter Slacik <Peter.Slacik@tatramed.sk>; optimise sem_post loop - Bossom, John <John.Bossom@Cognos.COM>.
1999-05-13Fri May 14 12:13:18 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* attr.c (pthread_attr_setdetachstate): Fix logic bug.
1999-04-06Wed Apr 7 14:09:52 1999 Ross Johnson <rpj@swan.canberra.edu.au>snap-1999-04-07rpj
* errno.c (_REENTRANT || _MT): Invert #if condition. * pthread.h (_errno): Conditionally include prototype.
1999-04-06Bump snapshot date.rpj
1999-04-06Wed Apr 7 09:37:00 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* *.c (comments): Remove individual attributions - these are documented sufficiently elsewhere. * implement.h (pthread.h): Remove extraneous include.
1999-04-03./ChangeLogrpj
Sun Apr 4 11:05:57 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * sched.c (sched.h): Include. * sched.h: New file for POSIX 1b scheduling. * pthread.h: Move opaque structures to implement.h; move sched_* prototypes out and into sched.h. * implement.h: Add opaque structures from pthread.h. * sched.c (sched_yield): New function. * condvar.c (_pthread_sem_*): Rename to sem_*; except for _pthread_sem_timedwait which is an private function. Sat Apr 3 23:28:00 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * Makefile.in (OBJS): Add errno.o. Fri Apr 2 11:08:50 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * implement.h (_pthread_sem_*): Remove prototypes now defined in semaphore.h. * pthread.h (sempahore.h): Include. * semaphore.h: New file for POSIX 1b semaphores. * pthread.h (_pthread_sem_t): Change to sem_t. * semaphore.c (_pthread_sem_*): Change to sem_*; these functions will be exported from the library; set errno on error. - John Bossom <jebossom@cognos.com> (_pthread_sem_timedwait): Moved to private.c. * private.c (_pthread_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. tests/ChangeLog Sun Apr 4 12:04:28 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * tsd1.c (mythread): Change Sleep(0) to sched_yield(). (sched.h): Include. * condvar3.c (mythread): Remove redundant Sleep(). * runtest.bat: Re-organised to make more informative.
1999-03-25Fri Mar 26 14:11:45 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* semaphore.c (_pthread_sem_timedwait): Check for negative milliseconds. - Tor Lillqvist <tml@iki.fi>
1999-03-23Wed Mar 24 11:32:07 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* misc.c (CancelableWait): Initialise exceptionInformation[2]. (pthread_self): Get a real Win32 thread handle for implicit threads. * cancel.c (pthread_testcancel): Initialise exceptionInformation[2]. * implement.h (SE_INFORMATION): Fix values. * private.c (_pthread_threadDestroy): Close the thread handle. Fri Mar 19 12:57:27 1999 Ross Johnson <rpj@swan.canberra.edu.au> * cancel.c (comments): Update and cleanup. Fri Mar 19 09:12:59 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * private.c (_pthread_threadStart): status returns PTHREAD_CANCELED. * pthread.h (PTHREAD_CANCELED): defined.
1999-03-18Refer readers to the web site.rpj
1999-03-18==> ChangeLog <==rpj
Fri Mar 19 09:12:59 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * private.c (_pthread_threadStart): status returns PTHREAD_CANCELED. * pthread.h (PTHREAD_CANCELED): defined. ==> tests/ChangeLog <== Fri Mar 19 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * *.bat: redirect unwanted output to nul: * runall.bat: new. * cancel1.c: new. Not part of suite yet.