* sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
and pthread_spin_unlock.
* sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
into pthread_spinlock_t. Change all uses.
* spinlock.c: Implement pthread_spin_lock.
Rename __pthread_unlock to __pthread_spin_unlock and define weak
alias for real name.
Define pthread_spin_trylock, pthread_spin_init, and
pthread_spin_destroy.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
and pthread_spin_unlock.
* cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* condvar.c: Likewise.
* internals.h: Likewise.
* join.c: Likewise.
* manager.c: Likewise.
* mutex.c: Likewise.
* pthread.c: Likewise.
* rwlock.c: Likewise.
* semaphore.c: Likewise.
* signals.c: Likewise.
* posix/getconf.c: Add support for many more POSIX options.
* sysdeps/posix/sysconf.c: Likewise.
* sysdeps/generic/bits/confname.h: Add many more POSIX options.
* sysdeps/mach/hurd/bits/posix_opt.h: Add _POSIX_REGEXP and
_POSIX_SHELL.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
* sysdeps/unix/sysv/linux/i386/bits/time.h: Rename __CLOCK_HIGHRES to
CLOCK_PROCESS_CPUTIME_ID. Add define CLOCK_MONOTONIC and
CLOCK_THREAD_CPUTIME_ID.
* sysdeps/unix/i386/clock_getcpuclockid.c: Set *clock_id to
CLOCK_PROCESS_CPUTIME_ID.
* sysdeps/unix/i386/i586/clock_getres.c: Change for renaming of
__CLOCK_HIGHRES to CLOCK_PROCESS_CPUTIME_ID. Handle
CLOCK_THREAD_CPUTIME_ID and CLOCK_MONOTONIC the same.
* sysdeps/unix/i386/i586/clock_gettime.c: Likewise.
* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
(__compare_and_swap): Mark as modifying memory.
2000-04-11 Andreas Jaeger <aj@suse.de>
* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
(__compare_and_swap): Mark as modifying memory.
2000-04-11 Geoff Keating <geoffk@cygnus.com>
* sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
__volatile__.
(__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
Don't have the 'asm' __volatile__.
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* internals.h: Define MEMORY_BARRIER as empty if not defined already.
* spinlock.c (__pthread_lock): Add memory barriers.
(__pthread_unlock): Likewise.
* sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
instruction.
(RELEASE): Not needed anymore.
(__compare_and_swap): Mark asm as modifying memory.
* sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
of MEMORY_BARRIER.
(__compare_and_swap): Use MEMORY_BARRIER instead of sync.
* sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
(MEMORY_BARRIER): Define using stbar.
* sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
stbar.
(__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
Mike Burrows <m3b@pa.dec.com>.
* sysdeps/unix/sysv/linux/getdents.c (__getdents): Avoid initial
lseek call be passing in a buffer which never allow a successful
first getdents syscall if not at leas the initial entry can be
stored in the user buffer.
2000-03-26 Ulrich Drepper <drepper@redhat.com>
* include/features.h: Undef and document __USE_XOPEN2K.
* malloc/mcheck.c: Implement pedantic checking of all allocated blocks
whenever a function is called. Initiated by calling mcheck_pedantic
instead of mcheck.
* malloc/mcheck.h: Declare mcheck_pedantic.
* malloc/Versions [libc] (GLIBC_2.2): Add mcheck_pedantic.
* locale/programs/localdef.c: Use mcheck_pedantic instead of mcheck
for now.
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-02-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/sigwait.c: Don't look for signal 0 since it does
not exist. Patch by Miloslav Trmac <mitr@volny.cz> (PR libc/1601).
* sysdeps/i386/fpu/s_nearbyint.S: Disable raising exception, not
enable it. Patch by Miloslav Trmac <mitr@volny.cz> (PR libc/1600).
* sysdeps/i386/fpu/s_nearbyintf.S: Likewise.
* sysdeps/i386/fpu/s_nearbyintf.l: Likewise.
2000-02-12 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/i386/msgctl.c (__new_msgctl): Move errno
declaration to place where it's needed to avoid compiler warning.
* sysdeps/unix/sysv/linux/i386/semctl.c (__new_semctl): Likewise.
* locale/weightwc.h (findidx): Correct find index value.
2000-01-04 Ulrich Drepper <drepper@cygnus.com>
* rt/aio.h (struct aioinit): Replace one aio_reserved value with
aio_idle_time.
* rt/aio_misc.c: Rewrite to not automatically terminate worker threads
after the operation is done. Let them linger for a user-definable
time.
* rt/aio_cancel.c: Likewise.
Patch by Willian M Shubert <william.m.shubert@intel.com>.
* sysdeps/i386/i686/add_n.S: New file.
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-29 Ulrich Drepper <drepper@cygnus.com>
* soft-fp/*: Tons of new files to implement floating-point arithmetic
in software.
Contributed by Richard Henderson, Jakub Jelinek and others.
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.