| Age | Commit message (Collapse) | Author | 
|---|
|  | * 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. | 
|  | * 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. | 
|  |  | 
|  | - 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-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> | 
|  | * 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>. | 
|  |  | 
|  |  | 
|  | * 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-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. | 
|  |  | 
|  | 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(). | 
|  | * errno.c (_REENTRANT || _MT): Invert #if condition.
        * pthread.h (_errno): Conditionally include prototype. | 
|  | * *.c (comments): Remove individual attributions - these are
        documented sufficiently elsewhere.
        * implement.h (pthread.h): Remove extraneous include. | 
|  | * condvar.c (pthread_cond_init): fix possible uninitialised use
        of cv.
Sun Mar 14 21:01:59 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
        * condvar.c (pthread_cond_destroy): don't do full cleanup if
        static initialised cv has never been used.
        (cond_timedwait): check result of auto-initialisation.
tests/ChangeLog
Mon Mar 15 00:17:55 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
        * mutex1.c: only test mutex init and destroy; add assertions.
        * count1.c: raise number of spawned threads to 60 (appears to
        be the limit under Win98).
Sun Mar 14 21:31:02 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
        * test.h (assert): add assertion trace option.
        Use:
        "#define ASSERT_TRACE 1" to turn it on,
        "#define ASSERT_TRACE 0" to turn it off (default).
        * condvar3.c (main): add more assertions.
        * condvar4.c (main): add more assertions.
        * condvar1.c (main): add more assertions. | 
|  |  | 
|  | * misc.c (CancelableWait): Ensure cancelEvent handle is the lowest
        indexed element in the handles array. Enhance test for abandoned
        objects.
        * pthread.h (PTHREAD_MUTEX_INITIALIZER): Trailing elements not
        initialised are set to zero by the compiler. This avoids the
        problem of initialising the opaque critical section element in it.
        (PTHREAD_COND_INITIALIZER): Ditto.
        * semaphore.c (_pthread_sem_timedwait): Check sem == NULL earlier.
Sun Mar  7 12:31:14 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
        * condvar.c (pthread_cond_init): set semaphore initial value
        to 0, not 1. cond_timedwait was returning signaled immediately.
        * misc.c (CancelableWait): Place the cancel event handle first
        in the handle table for WaitForMultipleObjects. This ensures that
        the cancel event is recognised and acted apon if both objects
        happen to be signaled together.
        * private.c (_pthread_cond_test_init_lock): Initialise and destroy.
        * implement.h (_pthread_cond_test_init_lock): Add extern.
        * global.c (_pthread_cond_test_init_lock): Add declaration.
        * condvar.c (pthread_cond_destroy): check for valid initialised CV;
        flag destroyed CVs as invalid.
        (pthread_cond_init): pthread_cond_t is no longer just a pointer.
        This is because PTHREAD_COND_INITIALIZER needs state info to reside
        in pthread_cond_t so that it can initialise on first use. Will work on
        making pthread_cond_t (and other objects like it) opaque again, if
        possible, later.
        (cond_timedwait): add check for statically initialisation of
        CV; initialise on first use.
        (pthread_cond_signal): check for valid CV.
        (pthread_cond_broadcast): check for valid CV.
        (_cond_check_need_init): Add.
        * pthread.h (PTHREAD_COND_INITIALIZER): Fix.
        (pthread_cond_t): no longer a pointer to pthread_cond_t_.
        (pthread_cond_t_): add 'staticinit' and 'valid' elements.
tests/ChangeLog
Sun Mar  7 10:41:52 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
        * Makefile (condvar3, condvar4): Add tests.
        * condvar4.c (General): Reduce to simple test case; prerequisite
        is condvar3.c; add description.
        * condvar3.c (General): Reduce to simple test case; prerequisite
        is condvar2.c; add description.
        * condvar2.c (General): Reduce to simple test case; prerequisite
        is condvar1.c; add description.
        * condvar1.c (General): Reduce to simple test case; add
        description.
        * Template.c (Comments): Add generic test detail. | 
|  | * Makefile (condvar3, condvar4): Add tests. | 
|  | * Template.c: Revamp.
        * condvar1.c: Add.
        * condvar2.c: Add.
	* Makefile: Add condvar1 condvar2 tests.
        * exit1.c, exit2.c, exit3.c: Cosmetic changes. | 
|  | * Makefile: Some refinement.
        * *.c: More exhaustive checking through assertions; clean up;
        add some more tests. | 
|  | * Makefile: Now actually runs the tests.
        * tests.h: Define our own assert macro. The Mingw32
        version pops up a dialog but we want to run non-interactively.
        * equal1.c: use assert a little more directly so that it
        prints the actual call statement.
        * exit1.c: Modify to return 0 on success, 1 on failure. | 
|  | * README: Update.
	* Makefile: New file. Run all tests automatically. Primitive tests
	are run first; more complex tests are run last.
	* count1.c: New test. Validate the thread count.
	* exit2.c: Perform a simpler test.
	* exit3.c: New test. Replaces exit2.c, since exit2.c needs to
	perform simpler checking first.
	* create1.c: Update to use the new testsuite exiting convention.
	* equal1.c: Likewise.
	* mutex1.c: Likewise.
	* mutex2.c: Likewise.
	* once1.c: Likewise.
	* self2.c: Likewise.
	* self3.c: Likewise.
	* tsd1.c: Likewise. |