.
[glibc/history.git] / linuxthreads / Changes
blobb213f36c5774c8621beb0bd7f0bf6cd7a94196e9
1 Release 0.9:
2 - more ports (SH, IA-64, s390)
3 - many bug fixes
4 - timed sync object wait functions
5 - barrier implementation
6 - spinlocks implementation
7 - thread register on x86
8 - variable stack size and position on some platforms
10 Release 0.8:
11 (ehmm, forgot to update, don't know anymore)
13 Release 0.7:
14 - Destructors for thread-specific data now conform to the POSIX semantics
15   (call destructors again if non-NULL TSD remains after a round of
16    destruction).
17 - Implemented thread-specific data as a sparse array, allows more TSD keys
18   and smaller thread descriptors (Ulrich Drepper).
19 - Added "error checking" mutexes.
20 - Protect against multiple sigwait() on the same signals.
21 - Simplified implementation of semaphores when compare_and_swap is
22   not available.
23 - Fixed bug in fork() where stdin was closed if fork() was called before
24   the first pthread_create().
25 - Fixed bug in the gethostby*_r functions (bad result if null bytes
26   in addresses).
27 - Typos in manual pages corrected.
28 - First cut at a PowerPC port (not working yet, runs into problems
29   with gcc and with the C library).
31 Release 0.6:
32 - Validation of thread identifiers: no more crashes when operating on
33   a thread that has exited (based on Pavel Krauz's ideas).
34 - Added fallback implementation of semaphores for the 386 and the
35   Sparc.
36 - Fixed a bug in signal handling causing false restarts of suspended
37   threads.
38 - Fixed a bug in realtime scheduling causing all threads to have
39   default scheduling on Ix86 with libc5.
40 - With realtime scheduling, unlocking a mutex now restarts the
41   highest priority thread waiting on the mutex, not the
42   first-suspended thread (Richard Neitzel).
43 - Timing a process now returns cumulative times for all threads, not
44   just times for the initial thread (suggested by Wolfram Gloger).
45 - Cleaned up name space (internal defs prefixed by __, weak aliases
46   for non-portable extensions).
47 - MIPS port (contributed by Ralf Baechle).
49 Release 0.5:
50 - Signal-safe semaphores a la POSIX 1003.1b added.
51 - Locking bug in pthread_mutex_trylock over recursive mutexes fixed.
52 - Race conditions in thread cancellation fixed.
53 - Sparc port (contributed by Miguel de Icaza).
54 - Support for getpwnam_r and getpwuid_r.
55 - Added pthread_kill_other_threads_np to be used in conjunction with
56   exec*().
58 Release 0.4:
59 - Manual pages for all functions.
60 - Synchronization bug causing accumulation of zombie processes fixed.
61 - Race condition in pthread_cond_timedwait fixed.
62 - Recursive mutexes are back by popular demand.
63 - Partial support for realtime scheduling (initiated by Richard Neitzel).
64 - pthread.h cleaned up a lot: now C++ compatible, added missing "const"
65   qualifiers, added short documentation, put to GNU libc standards
66   for name space pollution (Ulrich Drepper).
67 - Motorola 68k port (contributed by Andreas Schwab).
68 - Interaction with fork(2) cleaned up a lot.
70 Release 0.3:
71 - Thread creation and reclaimation now performed by a centralized
72   "thread manager" thread.
73 - Removed recursive mutexes to make regular mutexes more efficient.
74 - Now available as a shared library (contributed by Richard Henderson).
75 - Alpha port (contributed by Richard Henderson).
76 - Fixed many small discrepancies with Posix 1003.1c.
77 - Put under the LGPL instead of the GPL.
79 Release 0.2:
80 - Reentrant libc functions (adapted from libc 5.3.9 by Peeter Joot)
81 - pthread_cond_wait did not reacquire the mutex correctly on return
82 - More efficient pthread_cond_broadcast
84 Release 0.1:
85 - First public release