Code Log


Commit Date  
[f92b47] (snap-1999-05-30-patches) by rpj rpj

1999-08-12 Ross Johnson <rpj@ixobrychus.canberra.edu.au>

* 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>

* 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>.

The problem was that cleanup handlers were not executed when
pthread_exit() was called.

* implement.h (pthread_t_): Add exceptionInformation element for
C++ per-thread exception information.
(general): Define and rename exceptions.

* misc.c (CancelableWait): _PTHREAD_EPS_CANCEL (SEH) and
Pthread_exception_cancel (C++) used to identify the exception.

* cancel.c (pthread_testcancel): _PTHREAD_EPS_CANCEL (SEH) and
Pthread_exception_cancel (C++) used to identify the exception.

* exit.c (pthread_exit): throw/raise an exception to return to
_pthread_threadStart() to exit the thread. _PTHREAD_EPS_EXIT (SEH)
and Pthread_exception_exit (C++) used to identify the exception.

* private.c (_pthread_threadStart): Add pthread_exit exception trap;
clean up and exit the thread directly rather than via pthread_exit().

1999-08-12 00:53:52 Tree
[77d0a6] (snap-1999-05-30) by rpj rpj

Added.

1999-05-29 07:46:49 Tree
[7ecd88] by rpj rpj

Updated.

1999-05-29 07:44:43 Tree
[8b12ef] by rpj rpj

Sun May 30 00:25:02 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* semaphore.h (mode_t): Conditionally typedef it.

1999-05-29 07:30:57 Tree
[0103da] by rpj rpj

./ChangeLog
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-29 06:44:29 Tree
[17b929] by rpj rpj

Fri May 28 13:33:05 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* 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-27 20:44:42 Tree
[67f6e9] by rpj rpj

Fri May 14 12:13:18 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* attr.c (pthread_attr_setdetachstate): Fix logic bug.

1999-05-13 19:42:41 Tree
[5ad9bc] (snap-1999-04-07) by rpj rpj

Wed Apr 7 14:09:52 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* errno.c (_REENTRANT || _MT): Invert #if condition.
* pthread.h (_errno): Conditionally include prototype.

1999-04-06 22:02:54 Tree
[5d920c] by rpj rpj

Bump snapshot date.

1999-04-06 18:00:38 Tree
[747736] by rpj rpj

Wed Apr 7 09:37:00 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* *.c (comments): Remove individual attributions - these are
documented sufficiently elsewhere.
* implement.h (pthread.h): Remove extraneous include.

1999-04-06 17:57:46 Tree
[451bb0] by rpj rpj

./ChangeLog
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-04-03 22:05:39 Tree
[ad0b86] by rpj rpj

Fri Mar 26 14:11:45 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* semaphore.c (_pthread_sem_timedwait): Check for negative
milliseconds.
- Tor Lillqvist <tml@iki.fi>

1999-03-25 19:27:49 Tree
[ab9f05] by rpj rpj

Wed Mar 24 11:32:07 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* 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-23 19:43:43 Tree
[aa07e9] by rpj rpj

Refer readers to the web site.

1999-03-18 16:27:41 Tree
[907de7] by rpj rpj

==> ChangeLog <==
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.

1999-03-18 16:18:39 Tree
[6f3743] (snap-1999-03-16) by rpj rpj

Bump snapshot date.

1999-03-16 03:58:30 Tree
[b9da92] by rpj rpj

New file.

1999-03-16 03:38:42 Tree
[c5573b] by rpj rpj

Tue Mar 16 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* all: Add GNU LGPL and Copyright and Warranty.

1999-03-16 03:36:06 Tree
[f8af93] (snap-1999-03-15) by rpj rpj

Mon Mar 15 00:20:13 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* 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.

1999-03-14 05:29:18 Tree
[c181e5] by rpj rpj

Wed Mar 10 10:41:52 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* tryentercs.c: Apply typo patch from bje.
* tryentercs2.c: Ditto.

1999-03-11 17:35:30 Tree
[b14e60] by rpj rpj

Thu Mar 11 09:01:48 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.h (pthread_mutex_t): revert to (pthread_mutex_t *);
define a value to serve as PTHREAD_MUTEX_INITIALIZER.
(pthread_mutex_t_): remove staticinit and valid elements.
(pthread_cond_t): revert to (pthread_cond_t_ *);
define a value to serve as PTHREAD_COND_INITIALIZER.
(pthread_cond_t_): remove staticinit and valid elements.
* mutex.c (pthread_mutex_t args): adjust indirection of references.
(all functions): check for PTHREAD_MUTEX_INITIALIZER value;
check for NULL (invalid).
* condvar.c (pthread_cond_t args): adjust indirection of references.
(all functions): check for PTHREAD_COND_INITIALIZER value;
check for NULL (invalid).
Wed Mar 10 17:18:12 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* misc.c (CancelableWait): Undo changes from Mar 8 and 7.
tests/ChangeLog
Fri Mar 12 08:34:15 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* eyal1.c (main): Fix trylock loop; was not waiting for thread to lock
the "started" mutex.

1999-03-11 15:06:20 Tree
[52f7c3] by rpj rpj

Resolve merge conflicts; minor comment changes.

1999-03-08 21:02:20 Tree
[1e9697] by rpj rpj

Mon Mar 8 11:18:59 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* 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.

1999-03-07 18:02:06 Tree
[b7a680] by rpj rpj

Sun Mar 7 10:41:52 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* Makefile (condvar3, condvar4): Add tests.

1999-03-06 16:55:21 Tree
[044244] by rpj rpj

Sun Mar 7 10:41:52 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* 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.

1999-03-06 16:53:35 Tree
Older >