Update.
[platform/upstream/glibc.git] / linuxthreads / ChangeLog
index e90c2fe..2a7bcb9 100644 (file)
@@ -1,3 +1,301 @@
+2000-03-14  Ulrich Drepper  <drepper@redhat.com>
+
+       * mutex.c (__pthread_once): Handle cancelled init function correctly.
+       (pthread_once_cancelhandler): New function.
+       Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
+
+2000-03-14  Andreas Jaeger  <aj@suse.de>
+
+       * pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to
+       REG_GS.
+       (pthread_handle_sigrestart_rt): Likewise.
+       * signals.c (pthread_sighandler_rt): Likewise.
+
+2000-03-02  Andreas Jaeger  <aj@suse.de>
+
+       * sysdeps/pthread/bits/libc-lock.h: Fix typo.
+       Reported by Sean Chen <sean.chen@turbolinux.com>.
+
+2000-02-28  Andreas Jaeger  <aj@suse.de>
+
+       * rwlock.c: Fix typo.
+
+2000-02-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * rwlock.c: Define __* variants of the functions and make old names
+       aliases.
+       * Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions.
+       * sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros.
+
+2000-02-25  Andreas Jaeger  <aj@suse.de>
+
+       * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
+       pwrite64, lseek64, open64, and __open64 with version 2.2.
+
+2000-02-22  Ulrich Drepper  <drepper@redhat.com>
+
+       * semaphore.h (SEM_FAILED): Use 0 not NULL.
+
+2000-02-14  Ulrich Drepper  <drepper@redhat.com>
+
+       * condvar.c (pthread_cond_timedwait_relative_old): Tight loop with
+       nanosleep does not work either.  Get absolute time inside the
+       loop.
+       (pthread_cond_timedwait_relative_new): Likewise.
+       Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
+
+2000-02-13  Andreas Jaeger  <aj@suse.de>
+
+       * condvar.c (pthread_cond_timedwait_relative_new): Fix last patch.
+       (pthread_cond_timedwait_relative_old): Likewise.
+
+2000-02-13  Ulrich Drepper  <drepper@redhat.com>
+
+       * condvar.c (pthread_cond_timedwait_relative_old): Undo last patch
+       but keep the code around.  A bug in the kernel prevent us from
+       using the code.
+       (pthread_cond_timedwait_relative_new): Likewise.
+       (PR libc/1597 and libc/1598).
+
+2000-02-01  Kaz Kylheku  <kaz@ashi.footprints.net>
+
+       * condvar.c (pthread_cond_timedwait_relative_old): Do tight
+       loop around nanosleep calls instead of around most of the function
+       (pthread_cond_timedwait_relative_new): Likewise.
+       body.  Got rid of backwards goto and one local.
+
+2000-01-31  Ulrich Drepper  <drepper@redhat.com>
+
+       * condvar.c (pthread_cond_timedwait_relative_old): Recompute time
+       before every nanosleep call to account for time spent in the rest
+       of the function.
+       (pthread_cond_timedwait_relative_new): Likewise.
+       Patch by khendricks@ivey.uwo.ca (PR libc/1564).
+
+2000-01-29  Ulrich Drepper  <drepper@redhat.com>
+
+       * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time
+       from nanosleep call so that in case we restart we only wait for the
+       remaining time.
+       (pthread_cond_timedwait_relative_new): Likewise.
+       Patch by khendricks@ivey.uwo.ca (PR libc/1561).
+
+2000-01-18  Ulrich Drepper  <drepper@cygnus.com>
+
+       * manager.c (pthread_allocate_stack): Compute guard page address
+       correctly.  Patch by HJ Lu.
+
+       * sysdeps/pthread/pthread.h: Define
+       PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP.
+
+2000-01-16  Ulrich Drepper  <drepper@cygnus.com>
+
+       * rwlock.c (pthread_rwlock_unlock): Correct one more problem with
+       preference handling.
+       (pthread_rwlockattr_setkind_np): Allow
+       PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
+       Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
+
+2000-01-12  Ulrich Drepper  <drepper@cygnus.com>
+
+       * internals.h (pthread_readlock_info): New structure.
+       (_pthread_descr_struct): Add p_readlock_list, p_readlock_free, and
+       p_untracked_readlock_count.
+       * pthread.c (__pthread_initial_thread, pthread_manager_thread):
+       Add initializers for new fields.
+       * manager.c (pthread_free): Free read/write lock lists.
+       * queue.h (queue_is_empty): New function.
+       * rwlock.c: Implement requirements about when readers should get
+       locks assigned.
+       * sysdeps/pthread/pthread.h
+       (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP): New definition.
+       * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_rwlock_t):
+       Define this name as well.
+       Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
+
+2000-01-05  Ulrich Drepper  <drepper@cygnus.com>
+
+       * pthread.c (__pthread_initial_thread, pthread_manager_thread):
+       Adjust initializers for struct _pthread_descr_struct change.
+       * internals.h (struct _pthread_descr_struct): Move new elements to
+       the end.
+
+2000-01-03  Kaz Kylheku  <kaz@ashi.footprints.net>
+
+       Redesigned how cancellation unblocks a thread from internal
+       cancellation points (sem_wait, pthread_join,
+       pthread_cond_{wait,timedwait}).
+       Cancellation won't eat a signal in any of these functions
+       (*required* by POSIX and Single Unix Spec!).
+       * condvar.c: Spontaneous wakeup on pthread_cond_timedwait won't eat a
+       simultaneous condition variable signal (not required by POSIX
+       or Single Unix Spec, but nice).
+       * spinlock.c: __pthread_lock queues back any received restarts
+       that don't belong to it instead of assuming ownership of lock
+       upon any restart; fastlock can no longer be acquired by two threads
+       simultaneously.
+       * restart.h: Restarts queue even on kernels that don't have
+       queued real time signals (2.0, early 2.1), thanks to atomic counter,
+       avoiding a rare race condition in pthread_cond_timedwait.
+
+1999-12-31  Andreas Jaeger  <aj@suse.de>
+
+       * internals.h: Remove duplicate prototype declarations.
+
+       * weaks.c: Remove __THROW from prototypes since the file is not
+       compiled by a C++ compiler.
+       * internals.h: Likewise.
+
+1999-12-30  Andreas Jaeger  <aj@suse.de>
+
+       * sysdeps/pthread/pthread.h: Move internal functions to...
+       * sysdeps/pthread/bits/libc-lock.h: ...here.
+
+1999-12-29  Andreas Jaeger  <aj@suse.de>
+
+       * sysdeps/pthread/pthread.h: Fix typos, reformat comments.
+
+1999-12-28  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/alpha/pt-machine.h: Move stack_pointer definition to the
+       beginning.
+
+       * manager.c (__pthread_start): Add one more cast to prevent
+       warning on 64bit machines.
+
+1999-12-21  Ulrich Drepper  <drepper@cygnus.com>
+
+       * manager.c (pthread_handle_create): Set p_pid of new thread
+       before calling the callback function to report a new thread.
+
+1999-12-20  Andreas Jaeger  <aj@suse.de>
+
+       * pthread.c (pthread_initialize): Move getrlimit call after
+       setting of errno.
+
+1999-12-18  Ulrich Drepper  <drepper@cygnus.com>
+
+       * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
+       pwrite64, lseek64, open64, and __open64.
+       * wrapsyscall.c: Define pread, __pread64, pread64, pwrite, __pwrite64,
+       pwrite64, lseek64, open64, and __open64.
+
+       * manager.c (pthread_allocate_stack): Correct computation of
+       new_thread_bottom.  Correct handling of stack size and when the
+       rlimit method to guard for stack growth is used.
+       * pthread.c (pthread_initialize): Stack limit must be STACK_SIZE
+       minus one pagesize (not two).
+
+1999-12-03  Andreas Jaeger  <aj@suse.de>
+
+       * Versions: Add __res_state with version GLIBC_2.2.
+
+       * errno.c (__res_state): New function to return thread specific
+       resolver state.
+
+       * pthread.c (pthread_initialize): Initialize p_resp.
+       (__pthread_reset_main_thread): Also set p_resp.
+
+       * manager.c (pthread_handle_create): Initialize p_resp.
+
+       * internals.h: Add thread specific resolver state.
+       Based on patches by Adam D. Bradley <artdodge@cs.bu.edu>.
+
+1999-12-01  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/i386/pt-machine.h: Move stack_pointer definition to the
+       beginning.
+       * sysdeps/i386/i686/pt-machine.h: Likewise.
+       Patches by Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>.
+
+1999-11-23  Ulrich Drepper  <drepper@cygnus.com>
+
+       * manager.c (pthread_start_thread_event): Initialize p_pid already
+       here.
+
+1999-11-22  Ulrich Drepper  <drepper@cygnus.com>
+
+       * internals.h: Add prototype for __pthread_manager_event.
+       * manager.c (__pthread_manager_event): New function.
+       (pthread_start_thread_event): Correct computation of self.
+       Use INIT_THREAD_SELF.
+       * pthread.c (__pthread_manager_thread): Initialize p_lock.
+       (__pthread_initialize_manager): Respect event flags also for creation
+       of the manager thread.
+
+1999-11-08  Ulrich Drepper  <drepper@cygnus.com>
+
+       * pthread.c (__pthread_initialize_manager): Initialize
+       __pthread_manager_thread.p_tid.
+
+1999-11-02  Ulrich Drepper  <drepper@cygnus.com>
+
+       * internals.h: Declare __pthread_last_event.
+       * manager.c: Define __pthread_last_event.
+       (pthread_handle_create): Set __pthread_last_event.
+       (pthread_exited): Likewise.
+       * join.c (pthread_exit): Likewise.
+
+       * Makefile (libpthread-routines): Add events.
+       * events.c: New file.
+       * internals.h: Protect against multiple inclusion.
+       Include thread_dbP.h header.
+       (struct _pthread_descr_struct): Add new fields p_report_events and
+       p_eventbuf.
+       Declare event reporting functions.
+       * join.c (pthread_exit): Signal event if this is wanted.
+       * manager.c (__pthread_threads_events): New variable.
+       (pthread_handle_create): Take new parameters with event information.
+       Signal TD_CREATE event if wanted.
+       (__pthread_manager): Adjust pthread_handle_create call.
+       (pthread_start_thread_event): New function.  Block until manager is
+       finished and then call pthread_start_thread.
+       (pthread_exited): Signal TD_REAP event if wanted.
+
+1999-10-26  Ulrich Drepper  <drepper@cygnus.com>
+
+       * restart.h (suspend_with_cancellation): Rewrite as a macro.
+
+       * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.
+
+1999-10-25  Andreas Jaeger  <aj@suse.de>
+
+       * internals.h: Remove K&R compatibility.
+       * no-tsd.c: Likewise.
+       * semaphore.h: Likewise.
+       * signals.c: Likewise.
+       * sysdeps/pthread/bits/libc-tsd.h: Likewise.
+       * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
+       * weaks.c: Likewise.
+
+1999-10-21  Xavier Leroy  <Xavier.Leroy@inria.fr>
+
+       * linuxthreads/pthread.c: For i386, wrap pthread_handle_sigrestart
+       and pthread_handle_sigcancel with functions that restore
+       %gs from the signal context.  For each signal handling function,
+       two wrappers are required, one for a non-RT signal and one for
+       a RT signal.
+       * linuxthreads/signal.c: For i386, add code to restore %gs
+       from the signal context in pthread_sighandler and
+       pthread_sighandler_rt.
+
+1999-10-17  Ulrich Drepper  <drepper@cygnus.com>
+
+       * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add cast.
+
+1999-10-14  Ulrich Drepper  <drepper@cygnus.com>
+
+       * pthread.c (__pthread_initial_thread): Pass argument to
+       PTHREAD_START_ARGS_INITIALIZER.
+       (__pthread_manager_thread): Likewise.
+
+       * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add parameter to
+       initialize function.
+
+       * manager.c (pthread_handle_create): Remove p_startfct initialization.
+
+       * internals.h (_pthread_descr_struct): We don't need p_startfct field.
+
 1999-10-12  Ulrich Drepper  <drepper@cygnus.com>
 
        * internals.h: Correct return types for __libc_read and __libc_write.