]> sourceware.org Git - glibc.git/blame - linuxthreads/ChangeLog
Intensive test for POSIX barriers.
[glibc.git] / linuxthreads / ChangeLog
CommitLineData
42437ed1
UD
12000-09-05 Ulrich Drepper <drepper@redhat.com>
2
3 * mutex.c (__pthread_mutex_unlock): Correct test for already unlocked
4 mutex. Patch by dtc@cmucl.cons.org.
5
6 * ecmutex.c: New file.
7
c743652a
UD
82000-09-04 H.J. Lu <hjl@gnu.org>
9
10 * attr.c (__pthread_attr_setguardsize): Use page_roundup
11 instead of roundup to round up to the page size.
12
2e4581e4
UD
132000-09-03 Mark Kettenis <kettenis@gnu.org>
14
15 * manager.c (pthread_exited): Correctly report event as TD_REAP
16 instead of TD_DEATH. Fix comments.
17
5afe6c02
UD
182000-09-03 Ulrich Drepper <drepper@redhat.com>
19
20 * spinlock.h (testandset): Add cast to avoid warning.
21 Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
22
5376629d
AJ
232000-09-02 Andreas Jaeger <aj@suse.de>
24
25 * sysdeps/pthread/timer_routines.c: Include stdlib.h for abort
26 prototype.
27
a8e58aa9
UD
282000-09-01 Ulrich Drepper <drepper@redhat.com>
29
aebb1faa
UD
30 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
31 Fix typo in last patch (_mode -> _flags).
32
a8e58aa9
UD
33 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
34 Provide definition which respects _IO_USER_LOCK flag.
35
47cae281
UD
362000-08-30 Ulrich Drepper <drepper@redhat.com>
37
38 * manager.c (pthread_allocate_stack): Clear descriptor only if not
39 mmaped.
40
b7fb789d
UD
412000-08-25 Ulrich Drepper <drepper@redhat.com>
42
ad7534c8
UD
43 * Makefile: Add rules to build and run unload.
44 * unload.c: New file.
45
46 * pthread.c (pthread_exit_process): Move thread_self use inside `if'.
7045878b 47
b7fb789d
UD
48 * sysdeps/pthread/pthread.h
49 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Defined.
50 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: Defined.
51
7e98470d
AJ
522000-08-24 Andreas Jaeger <aj@suse.de>
53
c5ded983
AJ
54 * Examples/ex13.c: Include <string.h> for strerror prototype and
55 <stdlib.h> for abort prototype.
7e98470d
AJ
56 (pthr_cond_signal_mutex): Rewrite to silence GCC.
57 (thread_start): Remove unused variable err.
58 (main): Silence GCC warnings.
59
64f6b8f3
AJ
602000-08-22 Andreas Jaeger <aj@suse.de>
61
62 * Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>.
63
64 * Makefile (tests): Add ex13.
65
98cbe360
UD
662000-08-20 Ulrich Drepper <drepper@redhat.com>
67
68 * semaphore.h: Add restrict where required by AGd4.
69 * sysdeps/pthread/pthread.h: Likewise.
70 * sysdeps/pthread/unix/sysv/linux/bits/sigthread.h: Likewise.
71
9df76933
UD
722000-08-15 Ulrich Drepper <drepper@redhat.com>
73
74 * Makefile (tests): Add ex12. Add rule to build it.
75 * Examples/ex12.c: New file.
76
91bc38d0
UD
772000-08-13 Ulrich Drepper <drepper@redhat.com>
78
79 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_SEMAPHORES
80 even though the implementation is not quite complete (but it reports
81 it). Define _POSIX_MESSAGE_PASSING to -1.
82 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
83
facd11c2
AJ
842000-08-12 Andreas Jaeger <aj@suse.de>
85
86 * sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for
87 assembler.
88 (__compare_and_swap): Likewise.
89 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Likewise.
90
3459f702
UD
912000-08-10 Ulrich Drepper <drepper@redhat.com>
92
93 * pthread.c (__pthread_initial_thread): Initialize p_errnop and
94 p_h_errnop correctly and not to NULL.
95
c9326ed5
UD
962000-08-05 Ulrich Drepper <drepper@redhat.com>
97
98 * Banner: Bump version number to 0.9.
99
0a8d9231
UD
1002000-08-04 Ulrich Drepper <drepper@redhat.com>
101
fcd31f5a
UD
102 * Makefile (tests): Add tststack. Add rule to build the program.
103 * tststack.c: New file.
104
234dd7a6
UD
105 * internals.h: Declare __pthread_max_stacksize.
106 * pthread.c (__pthread_max_stacksize): New variable.
107 (__pthread_initialize_manager): Determine __pthread_initialize_manager
108 value.
109 * manager.c (thread_segment): Return always NULL if FLOATING_STACKS.
110 (pthread_allocate_stack): Allow kernel to choose stack address if
111 FLOATING_STACKS. This also handles variable-sized stacks.
c9326ed5 112 Always allocate stack and guardpage together. Use mprotect to
234dd7a6
UD
113 change guardpage access.
114 * sysdeps/i386/useldt.h: Define FLOATING_STACKS and
115 ARCH_STACK_MAX_SIZE.
116
117 * attr.c (__pthread_attr_setstacksize): Also test value against
118 upper limit.
119
0a8d9231
UD
120 * manager.c (__pthread_nonstandard_stacks): Define only if
121 THREAD_SELF is not defined.
122 (pthread_allocate_stack): Always initialize gardaddr to a correct
123 value.
124 (pthread_handle_create): Unmap thread with one call.
125 (pthread_free): Remove test for initial thread before removing stack.
126 Unmap stack with one call.
127
128 * pthread.c (__pthread_initial_thread): Initialize p_userstack to
129 1 to avoid removing the stack.
130
0d019734
UD
1312000-07-27 Jes Sorensen <jes@linuxcare.com>
132
d364e525 133 * sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add
0d019734
UD
134 load of spin lock to prime the cache before the atomic compare and
135 exchange operation (cmpxchg4). This avoids the spinning on the
136 cmpxchg4 instruction and reduces movement of the cache line back
137 and forth between the processors (explanation by Asis K. Mallick
138 from Intel). This basically makes the implementation operate the
139 same as the Linux kernel implementation.
140
d364e525
UD
141 * shlib-versions: Use GLIBC_2_2 for Linux/ia64.
142 * sysdeps/ia64/pspinlock.c: New file.
0d019734 143
139a4d95
UD
1442000-08-03 Ulrich Drepper <drepper@redhat.com>
145
146 * pthread.c: Move definition of __pthread_set_own_extricate_if...
147 * spinlock.h: ...here. Remove locking.
148 * internals.h: Remove __pthread_set_own_extricate_if prototype.
149
150 * rwlock.c: Use THREAD_GETMEM And THREAD_SETMEM.
151 (rwlock_rd_extricate_func): Don't determine self, let
152 __pthread_lock do it.
153 (rwlock_wr_extricate_func): Likewise.
154 (rwlock_have_already): Optimize *pself handling a bit.
155
156 * mutex.c: Use __builtin_expect.
157 * pthread.c: Likewise.
158
9016e55c
AJ
1592000-08-02 Andreas Jaeger <aj@suse.de>
160
d364e525
UD
161 * sysdeps/s390/pspinlock.c: New file.
162 * sysdeps/s390/pt-machine.h: New file.
9016e55c
AJ
163 Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>.
164
fdfb2ecc
AJ
1652000-07-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
166
167 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Implement for
168 R3K.
169 * sysdeps/mips/pt-machine.h (testandset): Likewise.
170
b98a450f
AJ
1712000-07-26 Andreas Jaeger <aj@suse.de>
172
173 * pthread.c: Initialize p_sem_avail.
174
a956d045
UD
1752000-07-25 Ulrich Drepper <drepper@redhat.com>
176
a99db924 177 * internals.h (struct __pthread_descr_struct): Add p_sem_avail.
9ec9e34e
UD
178 * semaphore.c: Handle spurious wakeups.
179
180 * sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias
181 for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility.
182
183 * pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM.
184 (__pthread_wait_for_restart): Likewise.
185
186 * condvar.c (pthread_cond_wait): Also check whether thread is
187 cancelable before aborting loop.
188 (pthread_cond_timedwait): Likewise.
189
a956d045
UD
190 * signals.c (pthread_sighandler): Remove special code to restrore
191 %gs on x86.
192 (pthread_sighandler_t): Likewise.
193
70e392a3
UD
1942000-07-25 Mark Kettenis <kettenis@gnu.org>
195
196 * internals.h (__RES_PTHREAD_INTERNAL): Remove define.
197 * pthread.c: Include <resolv.h>.
198 (_res): Undefine. Add extern declaration.
199
5122880a
UD
2002000-07-24 Ulrich Drepper <drepper@redhat.com>
201
f3d5834e
UD
202 * pthread.c (__pthread_initial_thread): Update initializer.
203 (__pthread_manager_thread): Likewise.
204 (pthread_initialize): Move setrlimit call to...
205 (__pthread_initialize_manager): ...here.
206 (__pthread_reset_main_thread): Reset also soft limit on stack size.
207
5122880a 208 * condvar.c: Handle spurious wakeups. [PR libc/1749].
ad0c66a0 209 * internals.h (struct _pthread_descr_struct): Add p_condvar_avail.
5122880a 210
0c0c8bde
UD
2112000-07-21 Ulrich Drepper <drepper@redhat.com>
212
5122880a 213 * spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use
0c0c8bde 214 __compare_and_swap to define testandset.
d364e525 215 * sysdeps/powerpc/pt-machine.h: Add volatile to asms.
0c0c8bde
UD
216 Define IMPLEMENT_TAS_WITH_CAS.
217
0fb7851f
UD
2182000-07-20 Ulrich Drepper <drepper@redhat.com>
219
220 * Makefile: Pass -z nodelete to linker for libpthread.so
221 generation if it understand this option.
222
4e8286ac
UD
2232000-07-18 Mark Kettenis <kettenis@gnu.org>
224
225 * manager.c (pthread_handle_create): Remove initialization of
226 new_thread->p_res._sock.
227
80ec4993
UD
2282000-07-19 Kaz Kylheku <kaz@ashi.footprints.net>
229
230 Bugfixes to the variant of the code for machines with no compare
231 and swap.
232
233 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait
234 node was not being properly enqueued, due to failing to update
235 the lock->__status field.
236
237 * spinlock.c (__pthread_alt_timedlock): The oldstatus variable was
238 being set inappropriately, causing the suspend function to be called
239 with a null self pointer and crash.
240
70c5b33d
UD
2412000-07-18 Ulrich Drepper <drepper@redhat.com>
242
056f707c
UD
243 * spinlock.h (__pthread_alt_trylock): Fix code used if no
244 compare&swap is available.
245
a48297fd
UD
246 * spinlock.h (__pthread_trylock): Use __compare_and_swap, not
247 compare_and_swap.
248
89bc5366 249 * pthread.c (pthread_initialize): Don't use sysconf to determine
247c8869
UD
250 whether the machine has more than one processor.
251
70c5b33d
UD
252 * spinlock.c (__pthread_alt_timedlock): Add back one of the
253 removed thread_self calls.
254
83142e8f
UD
2552000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
256
257 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Changed
258 __compare_and_swap to compare_and_swap in code which assumes
259 compare swap is available.
260
89bc5366 2612000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
e6574c9c
UD
262
263 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed
264 bug whereby thr field of waitnode structure would not be correctly
265 set unless a null self pointer is passed to the functions.
266 Eliminated redundant calls to thread_self().
267
c6df09ad
UD
2682000-07-18 Jakub Jelinek <jakub@redhat.com>
269
270 * pthread.c (__pthread_initialize_manager): Lock
271 __pthread_manager_thread.p_lock before calling clone.
272
9aae19cd
UD
2732000-05-05 H.J. Lu <hjl@gnu.org>
274
275 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
276 have acquire semantics.
277 (__compare_and_swap_with_release_semantics): New inline
278 function.
279 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro.
280
2812000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com>
282
283 * manager.c: Fix the problem with signals at startup.
284 Change the way that thread stacks are allocated on IA64.
285 Clean up some of the guard page allocation stuff.
286
2871999-12-19 H.J. Lu <hjl@gnu.org>
288
289 * internals.h (page_roundup): New.
290 * attr.c (__pthread_attr_setguardsize); Use page_roundup
291 instead of roundup.
292 * manager.c (pthread_allocate_stack): Make sure guardaddr is
293 page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK
294 is define.
295
2961999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com>
297
298 * manager.c (pthread_allocate_stack): Unmap the stack top
299 if failed to map the stack bottom.
300 Fix the guard page.
301 (pthread_free): Fix the guard page.
302
303 * pthread.c (pthread_initialize): Set rlimit correctly for
304 NEED_SEPARATE_REGISTER_STACK.
305
3061999-12-16 H.J. Lu <hjl@gnu.org>
307
308 * pthread.c (__pthread_initialize_manager): Pass
309 __pthread_manager_thread_bos instead of
310 __pthread_manager_thread_tos to __clone2.
311
3121999-12-16 H.J. Lu <hjl@gnu.org>
313
314 * manager.c (pthread_allocate_stack): Correct the calculation
315 of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for
316 stack bottom.
317
3181999-12-13 H.J. Lu <hjl@gnu.org>
319
320 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop
321 bit after setting ar.ccv.
322
3231999-12-12 H.J. Lu <hjl@gnu.org>
324
325 * manager.c (pthread_allocate_stack): Make the starting
326 address of the stack bottom page aligned. FIXME: it may
327 need changes in other places.
328 (pthread_handle_create): Likewise.
329
3301999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com>
331
332 * manager.c (pthread_allocate_stack): Handle
333 NEED_SEPARATE_REGISTER_STACK.
334 (pthread_handle_create): Likewise.
335 * pthread.c (__pthread_initialize_manager): Likewise.
336
337 * sysdeps/ia64/pt-machine.h: Use r13 for thread pointer.
338
3391999-12-02 H.J. Lu <hjl@gnu.org>
340
341 * sysdeps/ia64/pt-machine.h: New.
342
f218b5f5
UD
3432000-07-13 Ulrich Drepper <drepper@redhat.com>
344
345 * wrapsyscall.c: Mark non-__ protected names as weak.
346 PR libc/1466.
347
0d655550
UD
3482000-07-12 Bruno Haible <haible@clisp.cons.org>
349
350 * Examples/ex8.c: Include <sys/wait.h>, not <wait.h>.
351
9f835f5f
UD
3522000-07-12 Ulrich Drepper <drepper@redhat.com>
353
354 * spinlock.c: Fix code for TEST_FOR_COMPARE_AND_SWAP being defined.
355 Add tests also to new alternative spinlock implementation.
356 * spinlock.h: Likewise.
357 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
358
a85d5c80
UD
3592000-07-06 Ulrich Drepper <drepper@redhat.com>
360
c0f53cdd
UD
361 * Version: Export __sigaction.
362 * signals.c: Define __sigaction alias. Use __libc_sigaction instead
363 of __sigaction.
364 * pthread.c: Use __libc_sigaction instead of __sigaction.
365
a85d5c80
UD
366 * condvar.c: Implement pthread_condattr_getpshared and
367 pthread_condattr_setpshared.
368 * mutex.c: Implement pthread_mutexattr_getpshared and
369 pthread_mutexattr_setpshared.
370 * Versions: Export new functions.
371 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
372
373 * rwlock.c (pthread_rwlockattr_init): Use PTHREAD_PROCESS_PRIVATE.
374 (pthread_rwlockattr_setpshared): Fail if PTHREAD_PROCESS_PRIVATE
375 is not selected.
376
66c5b9aa
GM
3772000-07-04 Greg McGary <greg@mcgary.org>
378
379 * sysdeps/pthread/bits/libc-lock.h: Remove BP_SYM from
380 pragmas. Include bp-sym.h only if _LIBC.
381
83b1b6d8
UD
3822000-07-04 Ulrich Drepper <drepper@redhat.com>
383
384 * spinlock.c (__pthread_unlock): Properly place write barrier.
385 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
386
a88b96f4
UD
3872000-07-03 Ulrich Drepper <drepper@redhat.com>
388
389 * spinlock.c: Replace fast spinlocks by adaptive spinlocks which are
390 faster on SMP systems. No more emulation of compare&swap for adaptive
391 spinlocks.
392 * spinlock.h: Likewise.
393 * sysdeps/pthread/pthread.h: Shuffle PTHREAD_MUTEX_* values around.
394 Replace fast with adaptive mutex.
395 * mutex.c: Rewrite for replacement of fast by adaptive mutex.
396 * condvar.c: Likewise.
397 * pthread.c: Define and initialize __pthread_smp_kernel variable.
398 * internals.h: Declare __pthread_smp_kernel.
399 * sysdeps/pthread/bits/pthreadtypes.h: Update comment of
400 _pthread_fastlock structure.
401 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
402
403 * pthread.c: Remove initialization to zero from global variables.
404
1a6d7967
UD
4052000-06-29 Jakub Jelinek <jakub@redhat.com>
406
407 * shlib-versions: Make sparc64 GLIBC_2.2+ only.
408
1efd15e3
GM
4092000-06-28 Greg McGary <greg@mcgary.org>
410
411 * weaks.c: Wrap BP_SYM () around weak extern declarations of
412 pthread functions that have pointers in their return+arg signatures.
413
3210bef0
GM
4142000-06-27 Greg McGary <greg@mcgary.org>
415
1efd15e3
GM
416 * sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak
417 extern declarations of pthread functions that have pointers in
418 their return+arg signatures.
3210bef0 419
c49ebf76
UD
4202000-06-26 Ulrich Drepper <drepper@redhat.com>
421
422 * Makefile (tests): Add ex11. Add rules to build it.
423 * Examples/ex11.c: New file.
424 * rwlock.c: Fix complete braindamaged previous try to implement
425 timedout functions.
426
427 * spinlock.c: Pretty print.
428
d82e4c7b
UD
4292000-06-25 Ulrich Drepper <drepper@redhat.com>
430
431 * Makefile (tests): Add ex10. Add rules to build it.
432 * Versions [GLIBC_2.2] (libpthread): Add pthread_mutex_timedlock,
433 pthread_rwlock_timedrdlock, and pthread_rwlock_timedwrlock.
434 * condvar.c (pthread_cond_wait): Allow mutex of kind
435 PTHREAD_MUTEX_TIMED_NP.
436 (pthread_cond_timedwait_relative): Likewise.
437 * mutex.c (__pthread_mutex_init): Default is PTHREAD_MUTEX_TIMED_NP.
438 (__pthread_mutex_trylock): Use __pthread_alt_trylock for
439 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
440 (__pthread_mutex_lock): Use __pthread_alt_lock for
441 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
442 (__pthread_mutex_timedlock): New function.
443 (__pthread_mutex_unlock): Use __pthread_alt_unlock for
444 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
445 (__pthread_mutexattr_init): Use PTHREAD_MUTEX_TIMED_NP.
446 (__pthread_mutexattr_settype): Allow PTHREAD_MUTEX_TIMED_NP.
447 * spinlock.c: Implement alternate fastlocks.
448 * spinlock.h: Add prototypes.
449 * Examples/ex10.c: New file.
450 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
451 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
452
453 * rwlock.c (__pthread_rwlock_rdlock): Optimize loop a bit.
454 (__pthread_rwlock_timedrdlock): New function.
455 (__pthread_rwlock_timedwrlock): New function.
456 Use laternate fastlock function everywhere.
457
3d8e9510
AJ
4582000-06-21 Andreas Jaeger <aj@suse.de>
459
efa24b51 460 * sysdeps/pthread/timer_routines.c: Include <string.h> for memset
3d8e9510
AJ
461 prototype.
462
463 * join.c: Include <stdlib.h> for exit prototype.
464
697568d1
UD
4652000-06-20 Ulrich Drepper <drepper@redhat.com>
466
bdf09fab
UD
467 * sysdeps/i386/useldt.h: Include <stdlib.h>.
468
697568d1
UD
469 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_BARRIERS.
470 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
471
472 * Makefile (libpthread-routines): Add barrier.
473 (tests): Add ex9. Add rule to build ex9.
474 * Versions: Export barrier functions.
475 * barrier.c: New file.
476 * Examples/ex9.c: New file.
477 * sysdeps/pthread/pthread.h: Add barrier data types and declarations.
478 * sysdeps/pthread/bits/pthreadtypes.h: Likewise.
bdf09fab 479 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
697568d1 480
ba80a015
UD
4812000-06-19 H.J. Lu <hjl@gnu.org>
482
483 * spinlock.h (HAS_COMPARE_AND_SWAP): Defined if
484 HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS is defined.
485 (compare_and_swap_with_release_semantics): New. Default to
486 compare_and_swap if HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
487 is not defined.
488
489 * spinlock.c (__pthread_unlock): Call
490 compare_and_swap_with_release_semantics () instead of
491 compare_and_swap ().
492
d2dfc5de
UD
4932000-06-19 Ulrich Drepper <drepper@redhat.com>
494
495 * sysdeps/pthread/timer_create.c: Use _set_errno instead of assigning
496 to errno directly.
497 * sysdeps/pthread/timer_delete.c: Likewise.
498 * sysdeps/pthread/timer_getoverr.c: Likewise.
499 * sysdeps/pthread/timer_gettime.c: Likewise.
500 * sysdeps/pthread/timer_settime.c: Likewise.
501
5022000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
503
504 Timer nodes are now reference counted, and can be marked
505 as deleted. This allows for the safe release of the global mutex
506 in the middle without losing the timer being operated on.
507
508 * sysdeps/pthread/posix-timer.h (struct timer_node): The inuse
509 member is now an enum with three values, so that an intermediate
510 state can be represented (deleted but not free for reuse yet).
511 New refcount member added.
512 * sysdeps/pthread/timer_routines.c: Likewise.
513
514 * sysdeps/pthread/posix-timer.h (timer_addref, timer_delref,
515 timer_valid): New inline functions added.
516
517 * sysdeps/pthread/timer_gettime.c (timer_gettime): Function
518 restructured, recursive deadlock bug fixed.
519
520 * sysdeps/pthread/timer_gettime.c (timer_gettime): Uses new
521 timer_addref to ensure that timer won't be deleted while mutex is not
522 held. Also uses timer_invalid to perform validation of timer handle.
523 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
524 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise.
525
e26dd47f
UD
5262000-06-14 Ulrich Drepper <drepper@redhat.com>
527
528 * shlib-versions: Add entry for SH.
529 Patch by Kaz Kojima <kkojima@rr.iij4u.or.jp>.
530
38161ac7
UD
5312000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
532
533 A few optimizations. Got rid of unnecessary wakeups of timer threads,
534 tightened up some critical regions and micro-optimized some list
535 manipulation code.
536
537 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
538 Returns int value now to indicate whether timer was queued at head.
539 * sysdeps/pthread/posix-timer.h: Likewise.
540 * sysdeps/pthread/timer_settime.c (timer_settime): Takes advantage of
541 new return value from __timer_thread_queue_timer to avoid waking
542 up timer thread unnecessarily.
543
544 * sysdeps/pthread/posix-timer.h (timer_id2ptr): No longer checks
545 inuse flag, because this requires mutex to be held. Callers updated
546 to do the check when they have the mutex.
547 * sysdeps/pthread/timer_getoverr.c: Add check for inuse here.
548
549 * sysdeps/pthread/timer_settime.c (timer_settime): Tighter critical
550 regions: avoids making system calls while holding timer mutex, and
551 a few computations were moved outside of the mutex as well.
552 * sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
553
554 * sysdeps/pthread/posix-timer.h (list_unlink_ip): Function name changed
555 to list_unlink_ip, meaning idempotent. Pointer manipulation
556 changed to get better better code out of gcc.
557 * sysdeps/pthread/timer_routines.c (list_unlink): Non-idempotent
558 version of list_unlink added here.
559 * sysdeps/pthread/timer_delete.c: Use appropriate list unlink
560 function in all places: idempotent one for timers, non-idempotent
561 one for thread nodes.
562 * sysdeps/pthread/timer_settime: Likewise.
563 * sysdeps/pthread/timer_routines.c: Likewise.
564
7ae1fe4d
UD
5652000-06-13 Ulrich Drepper <drepper@redhat.com>
566
490dc9aa
UD
567 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_TIMERS): Define.
568 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
569
7ae1fe4d
UD
570 * sysdeps/pthread/Makefile: Remove tests definition.
571
3846ef75
UD
5722000-06-12 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
573 Yutaka Niibe <gniibe@chroot.org>
574
575 * sysdeps/sh/pspinlock.c: New file.
576 * sysdeps/sh/pt-machine.h: New file.
577
a5b97402
UD
5782000-06-12 Ulrich Drepper <drepper@redhat.com>
579
55985355
UD
580 * Makefile (tests): Add joinrace.
581
a5b97402
UD
582 * Examples/ex6.c: Test return value of pthread_join.
583
2b72ebac
GK
5842000-06-11 Geoff Keating <geoffk@cygnus.com>
585
586 * sysdeps/powerpc/pspinlock.c (__pthread_spin_lock): Implement.
587 (__pthread_spin_trylock): Implement.
588 (__pthread_spin_unlock): Implement.
589 (__pthread_spin_init): Implement.
590 (__pthread_spin_destroy): Implement.
591
425638fb
UD
5922000-06-10 Ulrich Drepper <drepper@redhat.com>
593
594 * sysdeps/pthread/timer_routines.c (list_append): Little fix to
2b72ebac 595 really append the entry.
425638fb 596
6948d763
AJ
5972000-06-10 Andreas Jaeger <aj@suse.de>
598
599 * lockfile.c (__fresetlockfiles): Remove unused variable fp.
600
45dc1187
UD
6012000-06-10 Kaz Kylheku <kaz@ashi.footprints.net>
602
603 * sysdeps/pthread/timer_create.c: Thread matching now done on
604 clock type as well as thread attributes.
605 There are individual global signal-delivering threads for
606 different clock types.
607 * sysdeps/pthread/posix-timer.h: Likewise.
608 * sysdeps/pthread/timer_routines.c: Likewise.
609
610 * sysdeps/pthread/timer_routines.c: Thread allocation and
611 deallocation function now remembers to put thread on active
425638fb 612 list and remove from active list.
45dc1187
UD
613 Thus now the feature of binding multiple timers
614 to a single thread actually works.
615
ee5d4855
UD
6162000-06-10 Ulrich Drepper <drepper@redhat.com>
617
618 * pthread.c (__pthread_create_2_1): Optimize a bit.
619
620 * internals.h (invalid_handle): Also test for p_terminated != 0.
621 (nonexisting_handle): New function. Same as old invalid_handle.
622 * join.c (pthread_join): Use nonexisting_handle instead of
623 invalid_handle to test for acceptable thread handle.
41b37cb5 624 * manager.c (pthread_handle_free): Likewise.
15109bd4 625 * joinrace.c: New file.
ee5d4855
UD
626 Reported by Permaine Cheung <pcheung@cygnus.com>.
627
2715f28a
UD
6282000-06-08 Ulrich Drepper <drepper@redhat.com>
629
8aa8fc7f
UD
630 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
631 Correct handling of matching variable.
632
480a06df
UD
633 * sysdeps/pthread/tst-timer.c (main): Rewrite initializers to
634 avoid warnings.
635
18e4e446
UD
636 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
637 Be prepared for empty timer list.
638
165ab1d7
UD
639 * sysdeps/pthread/timer_create.c (timer_create): Correct names of
640 CPUTIME clock ID. Add support for thread clocks.
641
f2a5974b
UD
642 * sysdeps/pthread/posix-timer.h (timer_ptr2id): Operands in
643 subtraction were switched.
644
c0f79a04
UD
645 * sysdeps/pthread/timer_routines.c (init_module): Use
646 THREAD_MAXNODES threads.
647
55938273
UD
648 * sysdeps/pthread/posix-timer.h (struct timer_node): Add creator_pid.
649 * sysdeps/pthread/timer_create.c: Fill in creator_pid.
650 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Send signal
651 with sigqueueinfo is this system call is available.
652
653 * sysdeps/pthread/timer_create.c (timer_create): Allow
654 CLOCK_CPUTIME if _POSIX_CPUTIME is defined.
655
2715f28a
UD
656 * sysdeps/pthread/Makefile: New file. Add rules to build timer
657 functionality.
658 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add TIMER_MAX.
659
6602000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
661
662 * sysdeps/pthread/posix-timer.h: New file.
663 * sysdeps/pthread/timer_create.c: New file.
664 * sysdeps/pthread/timer_delete.c: New file.
665 * sysdeps/pthread/timer_getoverr.c: New file.
666 * sysdeps/pthread/timer_gettime.c: New file.
667 * sysdeps/pthread/timer_routines.c: New file.
668 * sysdeps/pthread/timer_settime.c: New file.
669 * sysdeps/pthread/tst-timer.c: New file.
670
1b579f91
UD
6712000-06-08 Ulrich Drepper <drepper@redhat.com>
672
673 * sysdeps/unix/sysv/linux/bits/local_lim.h: Remove OPEN_MAX and
674 LINK_MAX definitions if necessary.
675
dc3b5786
UD
6762000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
677
678 Added missing fork time handling of global libio lock.
679
680 * lockfile.c (__fresetlockfiles): Now also resets the list lock,
681 not just the individual stream locks. Rewritten to use new
682 iterator interface provided by libio rather than accessing
683 global variable.
684
685 * lockfile.c (__flockfilelist, _funlockfilelist): New functions
686 which lock and unlock the stream list using the new interface
687 provied by libio.
688 * internals.h: Likewise.
689
690 * ptfork.c (__fork): Now calls __flockfilelist before fork,
691 and __funlockfilelist in the parent after the fork.
692 Child still calls __fresetlockfiles as before.
693
694 * linuxthreads.texi: Now explains what happens to streams at
695 fork time. Also whole new section on forking and thread added.
696 Definition of pthread_atfork moved out of Miscellaneous Functions
697 to this new section.
698
1dd54850
UD
6992000-06-04 Jakub Jelinek <jakub@redhat.com>
700
701 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c (__pthread_spin_lock):
702 Add missing register.
703 * sysdeps/sparc/sparc64/pspinlock.c (__pthread_spin_lock): Likewise.
704
554eca5c
AJ
7052000-06-02 Jakub Jelinek <jakub@redhat.com>
706
707 * sysdeps/sparc/sparc32/pspinlock.c: Implement spinlocks.
708 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: New.
709 * sysdeps/sparc/sparc64/pspinlock.c: Implement spinlocks.
710
a3a99e01
AJ
7112000-05-31 Andreas Jaeger <aj@suse.de>
712
713 * sysdeps/mips/pspinlock.c: Implement spinlocks.
714
c0f3519d
UD
7152000-05-28 Ulrich Drepper <drepper@redhat.com>
716
84838b8f
UD
717 * spinlock.c (__pthread_lock): Remove ASSERT.
718
c0f3519d
UD
719 * Makefile (tests): Add ex8.
720 * Examples/ex8.c: New file.
721
7222000-05-12 Kaz Kylheku <kaz@ashi.footprints.net>
723
724 Bugfix: The pthread_atfork mechanism now takes care of its
725 own internal mutex at fork time.
726
727 * ptfork.c (__fork): Revised so that the mutex is held across
728 the fork operation and while the handlers are called, and so that
729 the child resets the mutex.
c0f3519d
UD
730
731 * linuxthreads.texi: Updated pthread_atfork documentation to make
732 it clear that fork and pthread_atfork can't be reentered from
733 atfork handlers, that pthread_atfork and fork are mutually atomic,
734 and that the handlers are inherited by the child process.
735
378fbeb4
UD
7362000-05-24 Ulrich Drepper <drepper@redhat.com>
737
738 * Makefile (libpthread-routines): Add pspinlock.
739 * cancel.c: Rename __pthread_spin_unlock back to __pthread_unlock.
740 Use struct _pthread_fastlock instead of pthread_spinlock_t.
741 * condvar.c: Likewise.
742 * internals.h: Likewise.
743 * join.c: Likewise.
744 * manager.c: Likewise.
745 * mutex.c: Likewise.
746 * pthread.c: Likewise.
747 * rwlock.c: Likewise.
748 * semaphore.c: Likewise.
749 * signals.c: Likewise.
750 * spinlock.h: Likewise.
751 * spinlock.c: Likewise. Remove pthread_spin_lock functions.
752 * sysdeps/alpha/pspinlock.c: New file.
753 * sysdeps/arm/pspinlock.c: New file.
754 * sysdeps/i386/pspinlock.c: New file.
755 * sysdeps/m68k/pspinlock.c: New file.
756 * sysdeps/mips/pspinlock.c: New file.
757 * sysdeps/powerpc/pspinlock.c: New file.
758 * sysdeps/sparc/sparc32/pspinlock.c: New file.
759 * sysdeps/sparc/sparc64/pspinlock.c: New file.
760 * sysdeps/pthread/bits/pthreadtypes.h: Remove pthread_spinlock_t
761 back to _pthread_fastlock. Define new pthread_spinlock_t.
762
fff82885
AJ
7632000-05-24 Andreas Jaeger <aj@suse.de>
764
765 * sysdeps/i386/i686/pt-machine.h: Only use LDT on newer kernels.
766
5d1fba6d
AJ
7672000-05-21 Jakub Jelinek <jakub@redhat.com>
768
769 * manager.c (pthread_handle_create): Initialize p_res._sock to -1.
770
f14273c5
AJ
7712000-05-13 Jakub Jelinek <jakub@redhat.com>
772
773 * internals.h (__RES_PTHREAD_INTERNAL): Define.
774
93414bb9
UD
7752000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
776
777 * mutex.c (pthread_once): IN_PROGRESS state of pthread_once_t
778 object state is represented with additional bits which distinguish
779 whether that state was set up in the current process, or
780 in an ancestor process. If that state was set in an ancestor,
781 it means that a fork happened while thread was executing the init
782 function. In that case, the state is reset to NEVER.
783 * mutex.c (__pthread_once_fork_prepare): New function.
784 (__pthread_once_fork_child): Likewise
785 (__pthread_once_fork_parent): Likewise
786 (__pthread_reset_pthread_once): Removed.
787 * ptfork.c (__fork): Call new handlers in mutex.c.
788 * internals.h: Declarations of new mutex.c functions added.
789 Declaration of removed function deleted.
790 * linuxthreads.texi: Updated documentation about pthread_once
791 to clarify what happens under cancellation and forking.
792
fc08075d
UD
7932000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
794
795 * internals.h: New thread manager request type, REQ_KICK.
796 * join.c (pthread_exit): main thread now calls exit() instead
797 of _exit() in order to proper process cleanup.
798 * manager.c (__pthread_manager): Do not terminate manager
799 after unblocking main thread; wait for main thread's
800 REQ_PROCESS_EXIT request instead.
801 Also, added REQ_KICK case to handle new request; this just does
802 nothing.
803 * manager.c (pthread_exited): Do not terminate manager after
804 unblocking main thread.
805 * manager.c (__pthread_manager_sighandler): If the main thread
806 is waiting for all other threads to die, send a REQ_KICK into
807 the thread manager request pipe to get it to clean out the threads
808 and unblock the main thread as soon as possible. This fixes
809 the 2000 millisecond hang on shutdown bug.
810 * Examples/ex7.c: New file, tests shutdown behavior when all threads
811 including the main one call pthread_exit(), or implicitly do so.
812 * Makefile (tests): Add ex7.
813
b19b7383
AJ
8142000-05-05 Andreas Jaeger <aj@suse.de>
815
816 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
817 (pthread_getcpuclockid): Correct test for ourselves.
818
c77ec56d
UD
8192000-05-05 Ulrich Drepper <drepper@redhat.com>
820
821 * internals.h (struct _pthread_descr_struct): Reorganization.
822 Allocate room for 16 pointers at head of the structure for future
823 thread-local data handling. Move p_self member in this area.
824 * manager.c (pthread_handle_create): Adjust use of p_self.
825 * sysdeps/i386/useldt.h (THREAD_SELF): Likewise.
826 * pthread.c (__pthread_initial_thread): Adjust initialization.
827 (__pthread_manager_thread): Likewise.
828
8292000-04-29 Bruno Haible <haible@clisp.cons.org>
160016c9
UD
830
831 * join.c (pthread_exit): Use THREAD_GETMEM_NC instead of THREAD_GETMEM
832 for eventmask larger than 1 word.
833
3300816c
UD
8342000-04-27 Ulrich Drepper <drepper@redhat.com>
835
836 * Versions [libpthread] (GLIBC_2.2): Add __pthread_initialize_minimal.
837 * pthread.c (__pthread_initialize_minimal): New function. Perform
838 minimal initialization.
839 (pthread_initialize): Remove this code here.
840 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h" again. We
841 are working around the problem in glibc.
842
d472655c
UD
8432000-04-25 Ulrich Drepper <drepper@redhat.com>
844
845 * sysdeps/i386/i686/pt-machine.h: Do not use "../useldt.h" for
846 now. First gcc must be fixed (more concrete: libgcc).
847
9bf4d640
UD
8482000-04-24 Ulrich Drepper <drepper@redhat.com>
849
e19ae111 850 * pthread.c: Remove special treatement for interrupt handlers on x86.
9bf4d640
UD
851 * manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
852 * sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
853 necessary.
854 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h".
855
9682a871
UD
8562000-04-24 Mark Kettenis <kettenis@gnu.org>
857
858 * join.c (pthread_exit): Set p_terminated after reporting the
859 termination event instead of before.
860
d879eb85
UD
8612000-04-20 Jakub Jelinek <jakub@redhat.com>
862
863 * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_*
864 if __USE_UNIX98.
865
8662000-04-18 Andreas Jaeger <aj@suse.de>
867
868 * Versions: Use ld instead of ld.so.
869
318c80d4
UD
8702000-04-18 Jakub Jelinek <jakub@redhat.com>
871
872 * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h (struct sigcontext):
873 Remove the typedef keyword.
874
cd43f797
UD
8752000-04-18 Jakub Jelinek <jakub@redhat.com>
876
877 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Use membar,
878 not stbar.
879 (READ_MEMORY_BARRIER): Define.
880 * spinlock.c (__pthread_spin_unlock): Use READ_MEMORY_BARRIER, not
881 MEMORY_BARRIER.
882 * internals.h (READ_MEMORY_BARRIER): Define if not defined in sysdep
883 headers.
884
dbacafe5
UD
8852000-04-17 Ulrich Drepper <drepper@redhat.com>
886
887 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
888 (pthread_getcpuclockid): Don't compare thread_id with thread_self,
889 use thread_handle().
890
e2947c42
UD
8912000-04-16 Ulrich Drepper <drepper@redhat.com>
892
e3265f5b
UD
893 * condvar.c (pthread_cond_timedwait_relative): Don't test for owner
894 if fast mutex is used. Don't initialize `already_canceled' twice.
895 Correctly test for return value of timedsuspend.
896
e2947c42
UD
897 * pthread.c: Correct long-time braino. We never set SA_SIGINFO and
898 therefore don't need the _rt versions of the signal handlers.
899
150f740a
UD
9002000-04-15 Ulrich Drepper <drepper@redhat.com>
901
c269fdb4
UD
902 * pthread.c (pthread_yield): New function.
903 * sysdeps/pthread/pthread.h (pthread_yield): Add prototype.
904 * Versions [libpthread] (GLIBC_2.2): Add pthread_yield.
e2947c42 905 * internals.h: Declare __pthread_yield.
c269fdb4 906
145b8413
UD
907 * pthread.c (pthread_initialize): Avoid a bit more code if
908 realtime signals are known to exist.
909
150f740a
UD
910 * pthread.c: Is __ASSUME_REALTIME_SIGNALS then avoid generating code
911 to dynamically detect RT signals and avoid generating compatibility
912 functions with old kernel.
913 * restart.h (restart) [__ASSUME_REALTIME_SIGNALS]: Use
914 __pthread_restart_new directly.
915 (suspend) [__ASSUME_REALTIME_SIGNALS]: Use
916 __pthread_wait_for_restart_signal directly.
917 (timedsuspend) [__ASSUME_REALTIME_SIGNALS]: Use
918 __pthread_timedsuspend_new directly.
919
b2d4446f
UD
9202000-04-15 Ulrich Drepper <drepper@redhat.com>
921
ef187474
UD
922 * condvar.c: Remove all the special code to handle cond_timedwait.
923 Use timedsuspend instead.
924 * internals.h: Declare __pthread_timedsuspend_old,
925 __pthread_timedsuspend_new, and __pthread_timedsuspend.
926 Remove declaration of __pthread_init_condvar.
927 * pthread.c: Define __pthread_timedsuspend variable.
928 (__pthread_timedsuspend_old): New function. Timed suspension
929 implementation for old Linux kernels.
930 (__pthread_timedsuspend_new): New function. Timed suspension
931 implementation for new Linux kernels.
932 * restart.h (timedsuspend): New function. Call appropriate
933 suspension function through __pthread_timedsuspend.
934 * semaphore.c (sem_timedwait): Use timedsuspend, don't duplicate
935 the code.
936 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
937
a5a6f926
UD
938 * internals.h (WRITE_MEMORY_BARRIER): Define as MEMORY_BARRIER if
939 undefined.
940 * spinlock.c: Use WRITE_MEMORY_BARRIER instead of MEMORY_BARRIER
941 where possible.
942 * sysdeps/alpha/pt-machine.h: Define WRITE_MEMORY_BARRIER.
943 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
944
b2d4446f
UD
945 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _POSIX_SPAWN.
946 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
947
b82f6af2
AJ
9482000-04-14 Andreas Jaeger <aj@suse.de>
949
950 * weaks.c: Fix typo.
951
43c36f63
AJ
952 * shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
953 2.2 for linuxthreads.
954
547ff462
UD
9552000-04-13 Ulrich Drepper <drepper@redhat.com>
956
957 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
958 (pthread_getcpuclockid): Fix typo.
959
b3ae0650
UD
9602000-04-12 Ulrich Drepper <drepper@redhat.com>
961
3737ff12
UD
962 * Makefile (libpthread-routines): Add getcpuclockid.
963 * Versions [libpthread] (GLIBC_2.2): Add pthread_getcpuclockid.
964 * sysdeps/pthread/getcpuclockid.c: New file.
965 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: New file.
966 * sysdeps/pthread/pthread.h: Add prototype for pthread_getcpuclockid.
967
07d641eb
UD
968 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_SPIN_LOCKS):
969 Defined.
970 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
971
d8d914df
UD
972 * sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
973 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
974 and pthread_spin_unlock.
975 * sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
976 into pthread_spinlock_t. Change all uses.
977 * spinlock.c: Implement pthread_spin_lock.
978 Rename __pthread_unlock to __pthread_spin_unlock and define weak
979 alias for real name.
980 Define pthread_spin_trylock, pthread_spin_init, and
981 pthread_spin_destroy.
982 Change all uses of _pthread_fastlock to pthread_spinlock_t.
983 * spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
984 Change all uses of _pthread_fastlock to pthread_spinlock_t.
985 * Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
986 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
987 and pthread_spin_unlock.
988 * cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
989 Change all uses of _pthread_fastlock to pthread_spinlock_t.
990 * condvar.c: Likewise.
991 * internals.h: Likewise.
992 * join.c: Likewise.
993 * manager.c: Likewise.
994 * mutex.c: Likewise.
995 * pthread.c: Likewise.
996 * rwlock.c: Likewise.
997 * semaphore.c: Likewise.
998 * signals.c: Likewise.
999
b3ae0650
UD
1000 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add various new POSIX
1001 macros.
1002 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
1003
8a31d742
UD
10042000-04-11 Ulrich Drepper <drepper@redhat.com>
1005
1006 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add
1007 _POSIX_SHARED_MEMORY_OBJECTS.
1008
2a086df9
AJ
10092000-04-11 Andreas Jaeger <aj@suse.de>
1010
1011 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
1012 (__compare_and_swap): Mark as modifying memory.
1013
4a1a3c21
GK
10142000-04-11 Geoff Keating <geoffk@cygnus.com>
1015
1016 * sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
1017 __volatile__.
1018 (__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
1019 Don't have the 'asm' __volatile__.
1020
de262537
UD
10212000-04-11 Ulrich Drepper <drepper@redhat.com>
1022
1023 * internals.h: Define MEMORY_BARRIER as empty if not defined already.
1024 * spinlock.c (__pthread_lock): Add memory barriers.
1025 (__pthread_unlock): Likewise.
1026 * sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
1027 instruction.
1028 (RELEASE): Not needed anymore.
1029 (__compare_and_swap): Mark asm as modifying memory.
1030 * sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
1031 of MEMORY_BARRIER.
1032 (__compare_and_swap): Use MEMORY_BARRIER instead of sync.
1033 * sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
1034 (MEMORY_BARRIER): Define using stbar.
1035 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
1036 stbar.
1037 (__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
1038 Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
1039 Mike Burrows <m3b@pa.dec.com>.
1040
4186c9f4
UD
10412000-04-09 Ulrich Drepper <drepper@redhat.com>
1042
1043 * signals.c (sigaction): Fix return value for the case SIG is one
1044 of the signals the implementation uses.
1045 Patch by Xavier.Leroy@inria.fr.
1046
bd457114
UD
10472000-04-01 Andreas Jaeger <aj@suse.de>
1048
1049 * attr.c: Use shlib-compat macros.
1050 * oldsemaphore.c: Likewise.
1051 * pthread.c: Likewise.
1052 * weaks.c: Likewise.
1053
1edf26ff
UD
10542000-03-26 Ulrich Drepper <drepper@redhat.com>
1055
1056 * semaphore.c (sem_timedwait): New function.
1057 Patch by Carl Mailloux <carlm@oricom.ca>.
1058 * semaphore.h: Declare sem_timedwait.
8e605e78 1059 * Versions [libpthread] (GLIBC_2.2): Add sem_timedwait.
1edf26ff 1060
54f6cbb3
RM
10612000-03-26 Roland McGrath <roland@baalperazim.frob.com>
1062
1063 * sysdeps/pthread/Makefile: File removed.
1064
c0bc5f7b
UD
10652000-03-23 Ulrich Drepper <drepper@redhat.com>
1066
383052e9
UD
1067 * mutex.c (__pthread_reset_pthread_once): Reset once_masterlock.
1068 * internals.h (__pthread_reset_pthread_once): Add prototype.
1069 * ptfork.c (__fork): Call __pthread_reset_pthread_once.
1070
c0bc5f7b
UD
1071 * manager.c (pthread_handle_create): Store ID of new thread before
1072 clone call.
1073
0bf98029
UD
10742000-03-21 Ulrich Drepper <drepper@redhat.com>
1075
ef7dddd0
UD
1076 * attr.c: Use new macros from shlib-compat.h to define versions.
1077 * oldsemaphore.c: Likewise.
1078 * semaphore.c: Likewise.
1079 * weaks.c: Likewise.
1080
1ab1ea76
UD
1081 * pthread.c: Update for new SHLIB_COMPAT definition.
1082
101edd3f
UD
1083 * manager.c (__pthread_manager): Unmask debug signal.
1084
0bf98029
UD
1085 * pthread.c (pthread_initialize): Test for address of __dso_handle
1086 being NULL, not value. Use __on_exit, not on_exit.
e063cef8 1087 Patch by Andreas Jaeger <aj@suse.de>.
0bf98029 1088
75836bc8
UD
1089 * pthread.c: Use new macros from shlib-compat.h to define versions.
1090
a6a478e9
UD
10912000-03-19 Ulrich Drepper <drepper@redhat.com>
1092
1093 * pthread.c (pthread_initialize): Instead of on_exit use
1094 __cxa_atexit if __dso_label is available to allow unloading the
1095 libpthread shared library.
1096
13a83604
UD
10972000-03-16 Ulrich Drepper <drepper@redhat.com>
1098
1099 * condvar.c: Make tests for ownership of mutex less strict.
1100
30b416ea
UD
11012000-03-14 Ulrich Drepper <drepper@redhat.com>
1102
5d141597
UD
1103 * condvar.c (pthread_cond_wait): Check whether mutex is owned by
1104 current thread and return error if not.
04366d5f
UD
1105 (pthread_cond_timedwait_relative_old): Likewise.
1106 (pthread_cond_timedwait_relative_new): Likewise.
5d141597 1107
30b416ea
UD
1108 * mutex.c (__pthread_once): Handle cancelled init function correctly.
1109 (pthread_once_cancelhandler): New function.
1110 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
1111
56eea8d1
UD
11122000-03-14 Andreas Jaeger <aj@suse.de>
1113
1114 * pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to
1115 REG_GS.
1116 (pthread_handle_sigrestart_rt): Likewise.
1117 * signals.c (pthread_sighandler_rt): Likewise.
1118
3d9ebedb
AJ
11192000-03-02 Andreas Jaeger <aj@suse.de>
1120
1121 * sysdeps/pthread/bits/libc-lock.h: Fix typo.
1122 Reported by Sean Chen <sean.chen@turbolinux.com>.
1123
b041ebc2
UD
11242000-02-28 Andreas Jaeger <aj@suse.de>
1125
1126 * rwlock.c: Fix typo.
1127
0ed99ce4
UD
11282000-02-27 Ulrich Drepper <drepper@redhat.com>
1129
1130 * rwlock.c: Define __* variants of the functions and make old names
1131 aliases.
1132 * Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions.
1133 * sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros.
1134
d66732e0
UD
11352000-02-25 Andreas Jaeger <aj@suse.de>
1136
1137 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
0ed99ce4
UD
1138 pwrite64, lseek64, open64, and __open64 with version 2.2.
1139
93a19c64
UD
11402000-02-22 Ulrich Drepper <drepper@redhat.com>
1141
1142 * semaphore.h (SEM_FAILED): Use 0 not NULL.
1143
ec91ea7c
UD
11442000-02-14 Ulrich Drepper <drepper@redhat.com>
1145
1146 * condvar.c (pthread_cond_timedwait_relative_old): Tight loop with
1147 nanosleep does not work either. Get absolute time inside the
1148 loop.
1149 (pthread_cond_timedwait_relative_new): Likewise.
1150 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
1151
f5ff12d8
UD
11522000-02-13 Andreas Jaeger <aj@suse.de>
1153
1154 * condvar.c (pthread_cond_timedwait_relative_new): Fix last patch.
1155 (pthread_cond_timedwait_relative_old): Likewise.
1156
46661856
UD
11572000-02-13 Ulrich Drepper <drepper@redhat.com>
1158
1159 * condvar.c (pthread_cond_timedwait_relative_old): Undo last patch
1160 but keep the code around. A bug in the kernel prevent us from
1161 using the code.
1162 (pthread_cond_timedwait_relative_new): Likewise.
1163 (PR libc/1597 and libc/1598).
1164
b168cff2
UD
11652000-02-01 Kaz Kylheku <kaz@ashi.footprints.net>
1166
1167 * condvar.c (pthread_cond_timedwait_relative_old): Do tight
1168 loop around nanosleep calls instead of around most of the function
1169 (pthread_cond_timedwait_relative_new): Likewise.
1170 body. Got rid of backwards goto and one local.
1171
8a94dfe4
UD
11722000-01-31 Ulrich Drepper <drepper@redhat.com>
1173
1174 * condvar.c (pthread_cond_timedwait_relative_old): Recompute time
1175 before every nanosleep call to account for time spent in the rest
1176 of the function.
1177 (pthread_cond_timedwait_relative_new): Likewise.
1178 Patch by khendricks@ivey.uwo.ca (PR libc/1564).
1179
b6aa34eb
UD
11802000-01-29 Ulrich Drepper <drepper@redhat.com>
1181
1182 * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time
1183 from nanosleep call so that in case we restart we only wait for the
1184 remaining time.
1185 (pthread_cond_timedwait_relative_new): Likewise.
1186 Patch by khendricks@ivey.uwo.ca (PR libc/1561).
1187
0af4c646
UD
11882000-01-18 Ulrich Drepper <drepper@cygnus.com>
1189
1190 * manager.c (pthread_allocate_stack): Compute guard page address
1191 correctly. Patch by HJ Lu.
1192
1193 * sysdeps/pthread/pthread.h: Define
1194 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP.
1195
2449110a
UD
11962000-01-16 Ulrich Drepper <drepper@cygnus.com>
1197
1198 * rwlock.c (pthread_rwlock_unlock): Correct one more problem with
1199 preference handling.
1200 (pthread_rwlockattr_setkind_np): Allow
1201 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
1202 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
1203
03c0d6ef
UD
12042000-01-12 Ulrich Drepper <drepper@cygnus.com>
1205
1206 * internals.h (pthread_readlock_info): New structure.
1207 (_pthread_descr_struct): Add p_readlock_list, p_readlock_free, and
1208 p_untracked_readlock_count.
1209 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
1210 Add initializers for new fields.
1211 * manager.c (pthread_free): Free read/write lock lists.
1212 * queue.h (queue_is_empty): New function.
1213 * rwlock.c: Implement requirements about when readers should get
1214 locks assigned.
1215 * sysdeps/pthread/pthread.h
1216 (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP): New definition.
1217 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_rwlock_t):
1218 Define this name as well.
1219 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
1220
d569d333
UD
12212000-01-05 Ulrich Drepper <drepper@cygnus.com>
1222
2ba3c836
UD
1223 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
1224 Adjust initializers for struct _pthread_descr_struct change.
d569d333
UD
1225 * internals.h (struct _pthread_descr_struct): Move new elements to
1226 the end.
1227
1d2fc9b3
UD
12282000-01-03 Kaz Kylheku <kaz@ashi.footprints.net>
1229
1230 Redesigned how cancellation unblocks a thread from internal
1231 cancellation points (sem_wait, pthread_join,
1232 pthread_cond_{wait,timedwait}).
1233 Cancellation won't eat a signal in any of these functions
1234 (*required* by POSIX and Single Unix Spec!).
a3bfd999 1235 * condvar.c: Spontaneous wakeup on pthread_cond_timedwait won't eat a
1d2fc9b3
UD
1236 simultaneous condition variable signal (not required by POSIX
1237 or Single Unix Spec, but nice).
1238 * spinlock.c: __pthread_lock queues back any received restarts
1239 that don't belong to it instead of assuming ownership of lock
1240 upon any restart; fastlock can no longer be acquired by two threads
1241 simultaneously.
a3bfd999 1242 * restart.h: Restarts queue even on kernels that don't have
1d2fc9b3
UD
1243 queued real time signals (2.0, early 2.1), thanks to atomic counter,
1244 avoiding a rare race condition in pthread_cond_timedwait.
1245
1c5d4617
UD
12461999-12-31 Andreas Jaeger <aj@suse.de>
1247
1248 * internals.h: Remove duplicate prototype declarations.
1249
1250 * weaks.c: Remove __THROW from prototypes since the file is not
1251 compiled by a C++ compiler.
1252 * internals.h: Likewise.
1253
12541999-12-30 Andreas Jaeger <aj@suse.de>
1255
1256 * sysdeps/pthread/pthread.h: Move internal functions to...
1257 * sysdeps/pthread/bits/libc-lock.h: ...here.
1258
d876f532
UD
12591999-12-29 Andreas Jaeger <aj@suse.de>
1260
1261 * sysdeps/pthread/pthread.h: Fix typos, reformat comments.
1262
056e0358
UD
12631999-12-28 Ulrich Drepper <drepper@cygnus.com>
1264
1265 * sysdeps/alpha/pt-machine.h: Move stack_pointer definition to the
1266 beginning.
1267
1268 * manager.c (__pthread_start): Add one more cast to prevent
1269 warning on 64bit machines.
1270
46fd4f67
UD
12711999-12-21 Ulrich Drepper <drepper@cygnus.com>
1272
1273 * manager.c (pthread_handle_create): Set p_pid of new thread
1274 before calling the callback function to report a new thread.
1275
c63598bf
UD
12761999-12-20 Andreas Jaeger <aj@suse.de>
1277
1278 * pthread.c (pthread_initialize): Move getrlimit call after
1279 setting of errno.
1280
b85697f6
UD
12811999-12-18 Ulrich Drepper <drepper@cygnus.com>
1282
778c59c8
UD
1283 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
1284 pwrite64, lseek64, open64, and __open64.
1285 * wrapsyscall.c: Define pread, __pread64, pread64, pwrite, __pwrite64,
1286 pwrite64, lseek64, open64, and __open64.
1287
b85697f6
UD
1288 * manager.c (pthread_allocate_stack): Correct computation of
1289 new_thread_bottom. Correct handling of stack size and when the
1290 rlimit method to guard for stack growth is used.
1291 * pthread.c (pthread_initialize): Stack limit must be STACK_SIZE
1292 minus one pagesize (not two).
1293
b43b13ac
UD
12941999-12-03 Andreas Jaeger <aj@suse.de>
1295
1296 * Versions: Add __res_state with version GLIBC_2.2.
1297
1298 * errno.c (__res_state): New function to return thread specific
1299 resolver state.
1300
1301 * pthread.c (pthread_initialize): Initialize p_resp.
1302 (__pthread_reset_main_thread): Also set p_resp.
1303
1304 * manager.c (pthread_handle_create): Initialize p_resp.
1305
1306 * internals.h: Add thread specific resolver state.
1307 Based on patches by Adam D. Bradley <artdodge@cs.bu.edu>.
1308
d7a4856e
UD
13091999-12-01 Ulrich Drepper <drepper@cygnus.com>
1310
1311 * sysdeps/i386/pt-machine.h: Move stack_pointer definition to the
1312 beginning.
1313 * sysdeps/i386/i686/pt-machine.h: Likewise.
1314 Patches by Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>.
1315
ffd35632
UD
13161999-11-23 Ulrich Drepper <drepper@cygnus.com>
1317
1318 * manager.c (pthread_start_thread_event): Initialize p_pid already
1319 here.
1320
20bdb31b
UD
13211999-11-22 Ulrich Drepper <drepper@cygnus.com>
1322
1323 * internals.h: Add prototype for __pthread_manager_event.
1324 * manager.c (__pthread_manager_event): New function.
1325 (pthread_start_thread_event): Correct computation of self.
1326 Use INIT_THREAD_SELF.
1327 * pthread.c (__pthread_manager_thread): Initialize p_lock.
1328 (__pthread_initialize_manager): Respect event flags also for creation
1329 of the manager thread.
1330
178a145a
UD
13311999-11-08 Ulrich Drepper <drepper@cygnus.com>
1332
1333 * pthread.c (__pthread_initialize_manager): Initialize
1334 __pthread_manager_thread.p_tid.
1335
a9cb398f
UD
13361999-11-02 Ulrich Drepper <drepper@cygnus.com>
1337
ab86fbb1
UD
1338 * internals.h: Declare __pthread_last_event.
1339 * manager.c: Define __pthread_last_event.
1340 (pthread_handle_create): Set __pthread_last_event.
1341 (pthread_exited): Likewise.
1342 * join.c (pthread_exit): Likewise.
1343
a9cb398f
UD
1344 * Makefile (libpthread-routines): Add events.
1345 * events.c: New file.
1346 * internals.h: Protect against multiple inclusion.
1347 Include thread_dbP.h header.
1348 (struct _pthread_descr_struct): Add new fields p_report_events and
1349 p_eventbuf.
1350 Declare event reporting functions.
1351 * join.c (pthread_exit): Signal event if this is wanted.
1352 * manager.c (__pthread_threads_events): New variable.
1353 (pthread_handle_create): Take new parameters with event information.
1354 Signal TD_CREATE event if wanted.
1355 (__pthread_manager): Adjust pthread_handle_create call.
1356 (pthread_start_thread_event): New function. Block until manager is
1357 finished and then call pthread_start_thread.
1358 (pthread_exited): Signal TD_REAP event if wanted.
1359
8dd1e494
UD
13601999-10-26 Ulrich Drepper <drepper@cygnus.com>
1361
1362 * restart.h (suspend_with_cancellation): Rewrite as a macro.
1363
1364 * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.
1365
86cfe82d
UD
13661999-10-25 Andreas Jaeger <aj@suse.de>
1367
1368 * internals.h: Remove K&R compatibility.
1369 * no-tsd.c: Likewise.
1370 * semaphore.h: Likewise.
1371 * signals.c: Likewise.
1372 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
1373 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
1374 * weaks.c: Likewise.
1375
15daa639
UD
13761999-10-21 Xavier Leroy <Xavier.Leroy@inria.fr>
1377
d364e525
UD
1378 * pthread.c: For i386, wrap pthread_handle_sigrestart and
1379 pthread_handle_sigcancel with functions that restore %gs from the
1380 signal context. For each signal handling function, two wrappers
1381 are required, one for a non-RT signal and one for a RT signal.
1382 * signal.c: For i386, add code to restore %gs from the signal
1383 context in pthread_sighandler and pthread_sighandler_rt.
15daa639 1384
ef5d6645
UD
13851999-10-17 Ulrich Drepper <drepper@cygnus.com>
1386
1387 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add cast.
1388
f6367df2
UD
13891999-10-14 Ulrich Drepper <drepper@cygnus.com>
1390
4a379216
UD
1391 * pthread.c (__pthread_initial_thread): Pass argument to
1392 PTHREAD_START_ARGS_INITIALIZER.
1393 (__pthread_manager_thread): Likewise.
1394
1395 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add parameter to
1396 initialize function.
1397
f6367df2
UD
1398 * manager.c (pthread_handle_create): Remove p_startfct initialization.
1399
1400 * internals.h (_pthread_descr_struct): We don't need p_startfct field.
1401
d4c5cf80
UD
14021999-10-12 Ulrich Drepper <drepper@cygnus.com>
1403
1404 * internals.h: Correct return types for __libc_read and __libc_write.
1405
883c331a
UD
14061999-10-09 Andreas Jaeger <aj@suse.de>
1407
1408 * internals.h: Add __new_sem_post to get prototype in
1409 manager.c; include semaphore.h for needed types.
1410
c813f986
UD
14111999-10-08 Ulrich Drepper <drepper@cygnus.com>
1412
1413 * manager.c (__pthread_manager) [REQ_POST]: Use __new_sem_post
1414 directly instead of calling sem_post which should not be necessary
1415 but is faster and might help in some case to work around problems.
c1422e5b 1416 Patch by khendricks@ivey.uwo.ca [libc/1382].
c813f986 1417
0f5219d4
UD
14181999-10-08 Andreas Schwab <schwab@suse.de>
1419
1420 * sysdeps/pthread/Subdirs: New file.
1421 * Implies: Removed.
1422
9640bbe1
UD
14231999-10-07 Ulrich Drepper <drepper@cygnus.com>
1424
1425 * Implies: New file.
1426 * internals.h (struct _pthread_descr_struct): Add p_startfct.
1427 * manager.c (pthread_handle_create): Initialize p_startfct.
1428 * pthread.c: Define __linuxthread_pthread_sizeof_descr variable.
1429
079c00e6
UD
14301999-09-25 Ulrich Drepper <drepper@cygnus.com>
1431
d790bc34
UD
1432 * manager.c (__linuxthreads_pthread_threads_max): New variable.
1433 * specific.c (__linuxthreads_pthread_keys_max): New variable.
6e42b0f1 1434 (__linuxthreads_pthread_key_2ndlevel_size): New variable.
d790bc34 1435
079c00e6
UD
1436 * condvar.c (pthread_cond_timedwait_relative): Never return with
1437 EINTR. Patch by Andreas Schwab.
1438
b5c69d99
UD
14391999-09-19 Ulrich Drepper <drepper@cygnus.com>
1440
1441 * signals.c (sigaction): Correct last patch. Don't select
1442 pthread_sighandler_rt based on the signal number but instead of
1443 the SA_SIGINFO flag.
1444
d790bc34
UD
14451999-09-23 Ulrich Drepper <drepper@cygnus.com>
1446
1447 * specific.c: Move definitions of struct pthread_key_struct and
1448 destr_function to ...
1449 * internals.h: ...here.
1450
9cf44e65
UD
14511999-09-18 Ulrich Drepper <drepper@cygnus.com>
1452
1453 * pthread.c (pthread_handle_sigrestart_rt): New function. Use
1454 this instead of pthread_handle_sigrestart if the signal is an RT
1455 signal.
1456
1457 * signals.c: Handle passing through of sighandler arguments also
1458 for real-time signals.
1459
4fe53b3a
UD
14601999-09-03 Andreas Schwab <schwab@suse.de>
1461
1462 * ptfork.c (__fork): Renamed from fork and use __libc_fork. Add
1463 fork as weak alias.
1464 (__vfork): New function, alias vfork.
1465 * Versions: Export __fork, vfork, and __vfork in libpthread.
1466
1d0b89a4
UD
14671999-08-23 Andreas Schwab <schwab@suse.de>
1468
1469 * signals.c (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to
1470 call to signal handler.
1471
6570e194
UD
14721999-08-20 Ulrich Drepper <drepper@cygnus.com>
1473
1474 * pthread.c (__pthread_reset_main_thread): Undo last change.
1475 (__pthread_kill_other_threads_np): Reset signal handlers for the
1476 signals we used in the thread implementation here.
1477
70aea399
UD
14781999-08-19 Ulrich Drepper <drepper@cygnus.com>
1479
2b638910 1480 * pthread.c (__pthread_reset_main_thread): Reset signal handlers
68ea6c18 1481 for the signals we used in the thread implementation [PR libc/1234].
2b638910 1482
264ec183
UD
1483 * Versions: Export __pthread_kill_other_threads_np from libpthread
1484 for GLIBC_2.1.2.
1485
70aea399
UD
1486 * signals.c: Pass sigcontext through wrapper to the user function.
1487
ff5fad16
UD
14881999-08-01 Ulrich Drepper <drepper@cygnus.com>
1489
1490 * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and
1491 __libc_internal_tsd_set.
1492
6b798621
UD
14931999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
1494
1495 * manager.c: Remove inclusion of <linux/tasks.h> since it's not
1496 needed anymore.
1497
76a16b8f
UD
14981999-07-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
1499
4bf307e3 1500 * internals.h: Align _pthread_descr_struct to 32 bytes.
76a16b8f
UD
1501 Reported by Tim Hockin <thockin@cobaltnet.com>, close PR
1502 libc/1206.
1503
5ef2d37b
UD
15041999-07-09 Ulrich Drepper <drepper@cygnus.com>
1505
1506 * oldsemaphore.c (sem_compare_and_swap): Fix use of compare and
1507 swap function.
1508
c2fa5b5a
UD
15091999-07-09 Cristian Gafton <gafton@redhat.com>
1510
1511 * Makefile (libpthread-routines): Add oldsemaphore routine.
ae3c1571
UD
1512 * Versions: Add sem_destroy, sem_getvalue, sem_init, sem_post,
1513 sem_trywait, and sem_wait to GLIBC_2.1.
c2fa5b5a
UD
1514 * oldsemaphore.c: New file.
1515 * semaphore.c: Add default_symbol_versions for the changed functions.
1516 (__new_sem_init): Rename from sem_init.
1517 (__new_sem_post): Rename from sem_post.
1518 (__new_sem_wait): Rename from sem_wait.
1519 (__new_sem_trywait): Rename from sem_trywait.
1520 (__new_sem_getvalue): Rename from sem_getvalue.
1521 (__new_sem_destroy): Rename from sem_destroy.
1522
6a1db4ff
UD
15231999-06-23 Robey Pointer <robey@netscape.com>
1524
1525 * internals.h: Added p_nextlock entry to separate queueing for a
1526 lock from queueing for a CV (sometimes a thread queues on a lock
1527 to serialize removing itself from a CV queue).
1528 * pthread.c: Added p_nextlock to initializers.
1529 * spinlock.c: Changed to use p_nextlock instead of p_nextwaiting.
1530
019e7a64
UD
15311999-07-09 Ulrich Drepper <drepper@cygnus.com>
1532
1533 * manager.c (pthread_handle_create): Free mmap region after stack
1534 if clone failed. Patch by Kaz Kylheku <kaz@ashi.FootPrints.net>.
1535
33d1a2c5
UD
15361999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
1537
1538 * man/pthread_cond_init.man: Correct example.
1539 Reported by Tomas Berndtsson <tomas@nocrew.org>.
1540
1541 * linuxthreads.texi (Condition Variables): Likewise.
1542
407d26b7
UD
15431999-05-18 Jakub Jelinek <jj@ultra.linux.cz>
1544
1545 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use
1546 casx not cas, also successful casx returns the old value in rd
1547 and not the new value.
1548
431c33c0
UD
15491999-05-16 Xavier Leroy <Xavier.Leroy@inria.fr>
1550
1551 * manager.c: If pthread_create() is given a NULL attribute
1552 and the thread manager runs with a realtime policy, set the
1553 scheduling policy of the newly created thread back to SCHED_OTHER.
1554 * manager.c: If the PTHREAD_INHERIT_SCHED attribute is given,
1555 initialize the schedpolicy field of new_thread->p_start_args
1556 to that of the calling thread.
1557
2c68584c
UD
15581999-04-29 Ulrich Drepper <drepper@cygnus.com>
1559
1560 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): cas
1561 instruction does not allow memory element to use offset.
1562
390500b1
UD
15631999-04-28 Ulrich Drepper <drepper@cygnus.com>
1564
1565 * manager.c (pthread_allocate_stack): Optimize initialization of new
1566 thread descriptor.
1567
89afc233
UD
1568 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_define_initialized):
1569 Don't use initializer since it is all zeroes.
1570 (__libc_once_define): Likewise.
1571
1e76ce9c
UD
15721999-04-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
1573
1574 * sysdeps/arm/Implies: Removed since cmpxchg/no-cmpxchg
1575 doesn't exist anymore.
1576 * sysdeps/i386/Implies: Likewise.
1577 * sysdeps/m68k/Implies: Likewise.
1578 * sysdeps/mips/Implies: Likewise.
1579 * sysdeps/powerpc/Implies: Likewise.
1580 * sysdeps/sparc/sparc32/Implies: Likewise.
1581 * sysdeps/sparc/sparc64/Implies: Likewise.
1582
46a4682d
UD
15831999-04-15 Ulrich Drepper <drepper@cygnus.com>
1584
1585 * sysdeps/alpha/bits/semaphore.h: Removed.
1586 * sysdeps/powerpc/bits/semaphore.h: Removed.
1587 * sysdeps/pthread/cmpxchg/bits/semaphore.h: Removed.
1588 * sysdeps/pthread/no-cmpxchg/bits/semaphore.h: Removed.
1589 * Makefile (headers): Remove bits/semaphore.h.
1590
1591 * semaphore.h: Define _pthread_descr if necessary.
1592 Don't include limits.h. Define SEM_VALUE_MAX directly.
1593 Define SEM_FAILED.
1594 (sem_t): Protect element names with leading __.
1595 Add declarations for sem_close, sem_open, and sem_unlink.
1596 * semaphore.c: Adjust all functions for new element names.
1597 Define sem_close, sem_open, and sem_unlink.
1598 * Versions (libthread): Add sem_close, sem_open, and sem_unlink for
1599 GLIBC_2.1.1.
1600 * sysdeps/pthread/bits/pthreadtypes.h: Define _pthread_descr only if
1601 necessary.
1602
ea48e2c4
UD
16031999-03-16 H.J. Lu <hjl@gnu.org>
1604
1605 * specific.c (pthread_key_delete): Check th->p_terminated to see
1606 if the thread is running.
1607
670af0d9
UD
1608 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set):
1609 Added to GLIBC_2.0 for libc.so.
1610
0543cd26
UD
16111999-02-12 H.J. Lu <hjl@gnu.org>
1612
1613 * Versions (__libc_current_sigrtmin, __libc_current_sigrtmax,
1614 __libc_allocate_rtsig): Added to GLIBC_2.1.
1615
1616 * internals.h (DEFAULT_SIG_RESTART): Removed.
1617 (DEFAULT_SIG_CANCEL): Removed.
1618
1619 * pthread.c (init_rtsigs, __libc_current_sigrtmin,
1620 __libc_current_sigrtmax, __libc_allocate_rtsig): New functions.
1621 (__pthread_sig_restart, __pthread_sig_cancel,
1622 __pthread_sig_debug): Initialized.
1623 (pthread_initialize): Call init_rtsigs () to initialize
1624 real-time signals.
1625
f5492334
UD
16261999-02-03 H.J. Lu <hjl@gnu.org>
1627
1628 * manager.c (__pthread_manager): Do block __pthread_sig_debug.
1629 Don't restart the thread which sent REQ_DEBUG.
1630 (pthread_start_thread): Check if __pthread_sig_debug > 0
1631 before debugging.
1632
1633 * pthread.c (__pthread_initialize_manager): Suspend ourself
1634 after sending __pthread_sig_debug to gdb instead of
1635 __pthread_sig_cancel.
1636
8f0302ee
UD
16371999-01-24 H.J. Lu <hjl@gnu.org>
1638
1639 * manager.c (__pthread_manager): Delete __pthread_sig_debug
1640 from mask if __pthread_sig_debug > 0.
1641 (pthread_handle_create): Increment __pthread_handles_num.
1642
1643 * manager.c (pthread_handle_create): Don't pass CLONE_PTRACE to clone.
1644 * pthread.c (__pthread_initialize_manager): Likewise.
1645
1646 * pthread.c (pthread_initialize): Use __libc_allocate_rtsig (1)
1647 instead of __libc_allocate_rtsig (2).
1648 (__pthread_initialize_manager): Send __pthread_sig_debug to gdb
1649 instead of __pthread_sig_cancel.
1650 (pthread_handle_sigdebug): Fix comments.
1651
82df2969
UD
16521999-01-21 Ulrich Drepper <drepper@cygnus.com>
1653
1654 * manager.c (pthread_allocate_stack): Set
1655 __pthread_nonstandard_stacks if user-specified stack is used.
1656
482eec0d
UD
16571999-01-16 Ulrich Drepper <drepper@cygnus.com>
1658
1659 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _LFS_ASYNCHRONOUS_IO,
1660 _LFS_LARGEFILE, _LFS64_LARGEFILE, and _LFS64_STDIO from Unix98.
1661
b92ad8d6
UD
16621999-01-07 Xavier Leroy <Xavier.Leroy@inria.fr>
1663
1664 * pthread.c: Use a third signal __pthread_sig_debug distinct
1665 from __pthread_sig_cancel to notify gdb when a thread is
1666 created
1667 * manager.c: Likewise.
1668 * internals.h: Likewise.
1669 * signals.c: The implementation of sigwait(s) assumed that
1670 all signals in s have signal handlers already attached.
1671 This is not required by the standard, so make it work
1672 also if some of the signals have no handlers.
1673
34992338
UD
16741999-01-05 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1675
1676 * linuxthreads.texi: Remove pointers from first @node. Move old
1677 @node spec inside comment.
1678
118bad87
UD
16791998-12-31 Ulrich Drepper <drepper@cygnus.com>
1680
1681 * sysdeps/pthread/bits/stdio-lock.h: Define _IO_lock_lock and
1682 _IO_lock_unlock.
1683
c046e7a5
UD
16841998-12-29 Ulrich Drepper <drepper@cygnus.com>
1685
1686 * semaphore.c (sem_trywait): Don't forget to unlock the semaphore
1687 lock. Patch by Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>.
1688
361d49e6
UD
16891998-12-21 Ulrich Drepper <drepper@cygnus.com>
1690
1691 * manager.c: Threads now send __pthread_sig_cancel on termination.
1692 Change clone call and signal masks.
1693 * thread.c (pthread_handle_sigrestart): Remove special code for
1694 manager.
1695 (pthread_handle_sigcancel): In manager thread call
1696 __pthread_manager_sighandler.
1697 * sysdeps/i386/pt-machine.h (__compare_and_swap): Add memory clobber.
1698 * sysdeps/i386/i686/pt-machine.h: Likewise.
1699 Patches by Xavier Leroy.
1700
4260bc74
UD
17011998-12-14 Ulrich Drepper <drepper@cygnus.com>
1702
361d49e6 1703 * spinlock.c (__pthread_unlock): Don't crash if called for an
fbaf6e72
UD
1704 untaken mutex. Reported by Ruslan V. Brushkoff <rus@Snif.Te.Net.UA>.
1705
4260bc74
UD
1706 * Examples/ex6.c: Unbuffer stdout and reduce sleep time to reduce
1707 overall runtime.
1708
e3743e2f
UD
17091998-12-13 Ulrich Drepper <drepper@cygnus.com>
1710
1711 * Examples/ex3.c: Wait until all threads are started before
1712 searching for the number to avoid race condition on very fast
1713 systems.
1714
8632b240
UD
17151998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
1716
1717 * sysdeps/pthread/pthread.h: Remove __pthread_setcanceltype
2eda5d9b 1718 declaration since it's not needed.
8632b240
UD
1719
1720 * sysdeps/pthread/pthread.h: Move internal functions to ...
1721 * internals.h: ...here.
1722
a6ff34d7
UD
17231998-12-02 H.J. Lu <hjl@gnu.org>
1724
1725 * pthread.c (__pthread_sig_restart): Initiliaze to 0 if
1726 SIGRTMIN is defined.
1727 (__pthread_sig_cancel): Likewise.
1728
628a0aa1
UD
17291998-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
1730
1731 * wrapsyscall.c: Include <sys/mman.h> for msync,
1732 <stdlib.h> for system and <termios.h> for tcdrain prototype.
1733 Correct msync declaration.
1734
348ed515
UD
17351998-11-29 Roland McGrath <roland@baalperazim.frob.com>
1736
1737 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_define, __libc_tsd_get,
1738 __libc_tsd_set): New macros for new interface.
1739 * no-tsd.c: New file, provide uninitialized defns of
1740 __libc_internal_tsd_get and __libc_internal_tsd_set.
1741 * Makefile (routines): Add no-tsd.
1742
17431998-10-12 Roland McGrath <roland@baalperazim.frob.com>
1744
1745 * internals.h: Include <bits/libc-tsd.h>, not <bits/libc-lock.h>.
1746 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
1747 __libc_internal_tsd_set): Move decls to ...
1748 * sysdeps/pthread/bits/libc-tsd.h: New file for __libc_internal_tsd_*
1749 declarations.
1750
1751 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
1752 __libc_internal_tsd_set): Make these pointers to functions, not
1753 functions; remove #pragma weak decls for them.
1754 * specific.c (__libc_internal_tsd_get, __libc_internal_tsd_set):
1755 Define static functions and initialized pointers to them.
1756
97dac76c
UD
17571998-11-18 Ulrich Drepper <drepper@cygnus.com>
1758
1759 * Makefile (CFLAGS-mutex.c): Define as -D__NO_WEAK_PTHREAD_ALIASES.
1760 (CFLAGS-specific.c): Likewise.
1761 (CFLAGS-pthread.c): Likewise.
1762 (CFLAGS-ptfork.c): Likewise.
1763 (CFLAGS-cancel.c): Likewise.
1764 * sysdeps/pthread/bits/libc-lock.h: Don't mark __pthread_* functions
1765 as weak references if __NO_WEAK_PTHREAD_ALIASES is defined.
1766
1767 * mutex.c (pthread_mutex_init): Define as strong symbol.
1768 (pthread_mutex_destroy): Likewise.
1769 (pthread_mutex_trylock): Likewise.
1770 (pthread_mutex_lock): Likewise.
1771 (pthread_mutex_unlock): Likewise.
1772 (pthread_mutexattr_init): Likewise.
1773 (pthread_mutexattr_destroy): Likewise.
1774 (pthread_once): Likewise.
1775 * ptfork.c (pthread_atfork): Likewise.
1776 * specific.c (pthread_key_create): Likewise.
1777 (pthread_setspecific): Likewise.
1778 (pthread_getspecific): Likewise.
1779
8b7fb588
UD
17801998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1781
1782 * linuxthreads.texi: Fix punctuation after xref.
1783
d2537a47
UD
17841998-11-10 H.J. Lu <hjl@gnu.org>
1785
1786 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN
1787 if it is defined in <linux/limits.h>.
1788
d5cabaa4
UD
17891998-10-29 14:28 Ulrich Drepper <drepper@cygnus.com>
1790
1791 * spinlock.h (__pthread_trylock): Define inline.
1792 (__pthread_lock): Add extra parameter to declaration. Declare
1793 using internal_function.
1794 (__pthread_unlock): Declare using internal_function.
1795 * spinlock.c (__pthread_lock): Add new parameter. Use it instead
1796 of local variable self. Avoid recomputing self. Define using
1797 internal_function.
1798 (__pthread_trylock): Remove.
1799 (__pthread_unlock): Define using internal_function.
1800 * cancel.c: Adjust for __pthread_lock interface change. Use already
1801 computed self value is possible.
1802 * condvar.c: Likewise.
1803 * join.c: Likewise.
1804 * manager.c: Likewise.
1805 * mutex.c: Likewise.
1806 * pthread.c: Likewise.
1807 * rwlock.c: Likewise.
1808 * semaphore.c: Likewise.
1809 * signals.c: Likewise.
1810
c70ca1fa
UD
18111998-10-27 13:46 Ulrich Drepper <drepper@cygnus.com>
1812
1813 * sysdeps/pthread/pthread.h (struct _pthread_cleanup_buffer): Prepend
1814 __ to field names of the struct.
1815 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_fastlock):
1816 Likewise.
1817 (pthread_attr_t): Likewise.
1818 (pthread_cond_t): Likewise.
1819 (pthread_condattr_t): Likewise.
1820 (pthread_mutex_t): Likewise.
1821 (pthread_mutexattr_t): Likewise.
1822 (pthread_rwlock_t): Likewise.
1823 (pthread_rwlockattr_t): Likewise.
1824 * attr.c: Adjust for pthread.h and pthreadtypes.h change.
1825 * cancel.c: Likewise.
1826 * condvar.c: Likewise.
1827 * manager.c: Likewise.
1828 * mutex.c: Likewise.
1829 * pthread.c: Likewise.
1830 * ptlongjmp.c: Likewise.
1831 * rwlock.c: Likewise.
1832 * spinlock.c: Likewise.
1833
a5d1d726
UD
18341998-10-09 Ulrich Drepper <drepper@cygnus.com>
1835
7ccc548b
UD
1836 * sysdeps/i386/pt-machine.h (get_eflags, set_eflags): Mark these
1837 also with PT_EI.
1838
a5d1d726
UD
1839 * sysdeps/i386/i686/pt-machine.h: Remove unused inline
1840 definitions.
1841
9a29bc37
UD
1842 * Makefile (libpthread-routines): Add pt-machine.
1843 * pt-machine.c: New file.
1844 * sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not
1845 yet defined. Use PT_EI in extern inline definitions.
1846 * sysdeps/arm/pt-machine.h: Likewise.
1847 * sysdeps/i386/pt-machine.h: Likewise.
1848 * sysdeps/i386/i686/pt-machine.h: Likewise.
1849 * sysdeps/m68k/pt-machine.h: Likewise.
1850 * sysdeps/mips/pt-machine.h: Likewise.
1851 * sysdeps/powerpc/pt-machine.h: Likewise.
1852 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1853 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1854
c10bb795
UD
18551998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
1856
1857 * semaphore.h: Include <sys/types.h> so that _pthread_descr
1858 is declared.
1859
18601998-09-15 David S. Miller <davem@pierdol.cobaltmicro.com>
1861
1862 * sysdeps/sparc/sparc32/pt-machine.h (INIT_THREAD_SELF): Add nr
1863 argument.
1864 * sysdeps/sparc/sparc64/pt-machine.h (INIT_THREAD_SELF): Likewise.
1865
18661998-09-12 14:24 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
1867
d364e525
UD
1868 * sysdeps/unix/sysv/linux/bits/sigthread.h: Add multiple inclusion
1869 guard.
c10bb795 1870
5e0889da
UD
18711998-09-02 11:08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1872
1873 * signals.c (sigaction): Check that sig is less than NSIG to avoid
1874 array index overflow.
1875
6796bc80
UD
18761998-09-06 10:56 Ulrich Drepper <drepper@cygnus.com>
1877
1878 * sysdeps/pthread/semaphore.h: New file.
1879
be935610
UD
18801998-09-06 09:08 Ulrich Drepper <drepper@cygnus.com>
1881
1882 * sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add
1883 _LIBC_TSD_KEY_DL_ERROR.
1884
bfce746a
UD
18851998-08-31 Ulrich Drepper <drepper@cygnus.com>
1886
7afab53d 1887 * sysdeps/i386/i686/pt-machine.h (testandset): Add memory clobber.
6a805a0b 1888 * sysdeps/i386/pt-machine.h: Likewise.
bfce746a
UD
1889 Suggested by Roland McGrath.
1890
75311719
UD
18911998-08-28 13:58 Ulrich Drepper <drepper@cygnus.com>
1892
1893 * internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to
1894 access thread data with non-constant offsets.
1895 * specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where
1896 necessary.
1897
1898 * sysdeps/i386/useldt.h: Fix typo. Add THREAD_GETMEM_NC and
1899 THREAD_SETMEM_NC definitions.
1900
1901 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and
1902 THREAD_SETMEM_NC.
1903 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1904
00a2f9aa
UD
19051998-08-26 15:46 Ulrich Drepper <drepper@cygnus.com>
1906
1907 * internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if
1908 not already defined.
1909 (struct _pthread_descr_struct): Add p_self and p_nr field.
1910 * manager.c (__pthread_handles): Define second element to point
1911 to manager thread.
1912 (__pthread_handles_num): Initialize to 2.
1913 (__pthread_manager): Use INIT_THREAD_SELF with two arguments.
1914 (pthread_start_thread): Likewise.
1915 (pthread_handle_create): Start search for free slot at entry 2.
1916 Initialize new fields p_self and p_nr.
1917 Call __clone with CLONE_PTRACE if available.
1918 (pthread_free): Call FREE_THREAD_SELF if available.
1919 * pthread.c (__pthread_initial_thread): Initialize new fields.
1920 (__pthread_manager_thread): Likewise.
1921 (__pthread_initialize_manager): Call __clone with CLONE_PTRACE.
1922
1923 * cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the
1924 elements of the thread descriptor.
1925 * condvar.c: Likewise.
1926 * errno.c: Likewise.
1927 * join.c: Likewise.
1928 * manager.c: Likewise.
1929 * pthread.c: Likewise.
1930 * ptlongjmp.c: Likewise.
1931 * semaphore.c: Likewise.
1932 * signals.c: Likewise.
1933 * specific.c: Likewise.
1934 * spinlock.c: Likewise.
1935
1936 * sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter.
1937
1938 * sysdeps/i386/useldt.h: New file.
1939 * sysdeps/i386/i686/pt-machine.h: Show how to use this file.
1940
1941 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and
1942 THREAD_SETMEM using __thread_self.
1943 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1944
ed1ac6a2
UD
19451998-08-24 Geoff Keating <geoffk@ozemail.com.au>
1946
1947 * spinlock.c (__pthread_lock): Reset p_nextwaiting to NULL if it
1948 turned out that we didn't need to queue after all.
1949
19501998-08-22 Geoff Keating <geoffk@ozemail.com.au>
1951
1952 * sysdeps/powerpc/pt-machine.h: Remove testandset, it's not used
1953 and wastes space; correct types.
1954
cf0fd016
UD
19551998-08-08 11:18 H.J. Lu <hjl@gnu.org>
1956
1957 * signals.c (sigaction): Handle NULL argument.
1958
d358336f
UD
19591998-08-04 Ulrich Drepper <drepper@cygnus.com>
1960
1961 * sysdeps/unix/sysv/linux/bits/sigthread.h: Use __sigset_t instead
1962 of sigset_t.
1963
7cabd57c
UD
19641998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1965
1966 * Makefile (linuxthreads-version): Extract correct number from
1967 Banner.
1968
ddbf7fef
UD
19691998-07-29 Xavier Leroy <Xavier.Leroy@inria.fr>
1970
1971 * Banner: Bump version number to 0.8
1972 * FAQ.html: Many updates, in particular w.r.t. debugging.
1973 * manager.c: Support for non-default stacksize for
1974 LinuxThreads-allocated stacks;
1975 don't use guard pages for stacks with default size, rely on
1976 rlimit(RLIMIT_STACK) instead (it's cheaper).
1977 * attr.c: Likewise.
1978 * cancel.c: Use __pthread_sig_cancel and __pthread_sig_restart
1979 everywhere instead of PTHREAD_SIG_CANCEL and PTHREAD_SIG_RESTART.
1980 * condvar.c: Likewise.
1981 * internals.h: Likewise.
1982 * restart.h: Likewise.
1983 * signals.c: Likewise.
1984 * pthread.c: Likewise; set rlimit(RLIMIT_STACK) as we need it.
1985
6c202c68
UD
19861998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1987
1988 * weaks.c: Define pthread_mutexattr_[sg]ettype instead of
1989 __pthread_mutexattr_[sg]ettype. Add more weak aliases.
1990 * Versions: Put __pthread_mutexattr_settype under version
1991 GLIBC_2.0. Don't export __pthread_mutexattr_setkind_np and
1992 __pthread_mutexattr_gettype.
1993
19941998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1995
1996 * sysdeps/pthread/bits/libc-lock.h: Make
1997 __pthread_mutexattr_settype weak. Don't make
1998 __pthread_mutexattr_setkind_np weak.
1999
50304ef0
UD
20001998-07-16 10:52 Ulrich Drepper <drepper@cygnus.com>
2001
2002 * manager.c (pthread_handle_create): Check whether sched_setscheduler
2003 call can succeed here.
2004
2005 * mutex.c: Define __pthread_mutexattr_settype and make
2006 __pthread_mutexattr_setkind_np an alias.
2007 Likewise for __pthread_mutexattr_gettype.
2008
20091998-07-15 11:00 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
2010
2011 * attr.c (pthread_attr_setschedpolicy): Don't check whether caller
2012 is root.
2013
c764b9a7
UD
20141998-07-14 19:38 Ulrich Drepper <drepper@cygnus.com>
2015
2016 * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_end.
2017
ceb27555
UD
20181998-07-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
2019
2020 * Examples/ex6.c: Include <unistd.h> for usleep.
2021
b1209f90
UD
20221998-06-13 11:04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2023
2024 * Examples/ex4.c (main): Use exit, not pthread_exit.
2025
6077fe6e
UD
20261998-07-09 13:39 Ulrich Drepper <drepper@cygnus.com>
2027
2028 * Versions: Add __pthread_mutexattr_gettype and
2029 __pthread_mutexattr_settype.
2030 * lockfile.c: Use __pthread_mutexattr_settype instead of
2031 __pthread_mutexattr_setkind_np.
2032 * mutex.c: Define __pthread_mutexattr_gettype and
2033 __pthread_mutexattr_settype.
2034 * weak.c: Likewise.
e918a7fe
UD
2035 * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and
2036 __pthread_mutexattr_settype.
2037 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive):
2038 Use __pthread_mutexattr_settype.
6077fe6e 2039
4bae5567
UD
20401998-07-08 22:26 Ulrich Drepper <drepper@cygnus.com>
2041
2042 * Versions: Add pthread_mutexattr_gettype, pthread_mutexattr_settype.
2043 * mutex.c: Define weak alias pthread_mutexattr_gettype and
2044 pthread_mutexattr_settype.
2045 * sysdeps/pthread/pthread.h: Declare these functions.
2046 Move pthread_sigmask and pthread_kill declaration in separate header.
2047 * sysdeps/unix/sysv/linux/bits/sigthread.h: New file.
2048
0302fece
UD
20491998-07-07 15:20 Ulrich Drepper <drepper@cygnus.com>
2050
2051 * Makefile: Add rules to compile and run tests.
2052 * Examples/ex1.c: Little changes to fix warnings.
2053 * Examples/ex2.c: Likewise.
2054 * Examples/ex3.c: Likewise.
2055 * Examples/ex4.c: Likewise.
2056 * Examples/ex5.c: Likewise.
2057 * Examples/ex6.c: New file.
2058
77ccaba1
UD
20591998-07-05 11:54 Ulrich Drepper <drepper@cygnus.com>
2060
6777b467 2061 * Versions: Add pthread_attr_init to GLIBC_2.1 version in libc.
77ccaba1 2062
ba9234d9
UD
20631998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
2064
2065 * attr.c: Include <string.h>.
2066
d64fae6a
UD
20671998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
2068
2069 * attr.c: Include errno.h. Use memcpy to copy sched_param.
2070 * internals.h: Include limits.h.
2071 * manager.c: Use memcpy to copy sched_param.
2072 * ptfork.c: Include errno.h.
2073 * pthread.c: Likewise.
2074 * semaphore.c: Likewise.
2075 * specific.c: Likewise.
2076 * spinlock.h: Likewise.
2077 * sysdeps/pthread/pthread.h: Include only allowed headers. Move
2078 type definition to ...
2079 * sysdeps/pthread/bits/pthreadtypes.h: ...here. New file.
2080
fdacb17d
UD
20811998-06-29 12:34 Ulrich Drepper <drepper@cygnus.com>
2082
2083 * sysdeps/pthread/pthread.h: Use __PMT not __P for function pointers.
2084
2085 * sysdeps/pthread/pthread.h: Define various PTHREAD_* symbols also
2086 as macros as demanded in POSIX.1, Annex C.
2087
20881998-06-29 12:29 Ulrich Drepper <drepper@cygnus.com>
2089
2090 * internals.h (struct pthread_request): For free use pthread_t
2091 instead of pthread_descr.
2092 * join.c (pthread_join): Pass thread_id, not th to manager.
2093 (pthread_detach): Likewise.
2094 * manager.c (__pthread_manager): Except thread ID in FREE_REQ case.
2095 (pthread_exited): Remove detached queue code.
2096 (pthread_handle_free): Expect thread ID parameter and use it to
2097 validate the thread decsriptor. Don't use detached queue.
2098 Patches by Xavier Leroy.
2099
21001998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2101
2102 * libpthread.map: Export accept, longjmp, sigaction, siglongjmp,
2103 _IO_flockfile, _IO_ftrylockfile, _IO_funlockfile,
2104 __pthread_atfork, __pthread_key_create, __pthread_once.
2105 * internals.h: Doc fix.
2106 * pthread.c (__pthread_initialize): Define again.
2107
e138a800
UD
21081998-06-26 Ulrich Drepper <drepper@cygnus.com>
2109
026d5011
UD
2110 * manager.c (pthread_exited): If thread is not detached put it on
2111 special list.
2112 (pthread_handle_free): If thread is not on list with living threads
2113 search on list with detached threads.
2114
b195f6bc
UD
2115 * sysdeps/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Correct
2116 for new definition of pthread_rwlock_t.
2117
e138a800
UD
2118 * spinlock.c: Correct test whether to compile
2119 __pthread_compare_and_swap or not.
2120
3387a425
UD
21211998-06-25 19:27 Ulrich Drepper <drepper@cygnus.com>
2122
2123 * attr.c: Finish user stack support. Change locking code to be safe
2124 in situations with different priorities.
2125 * cancel.c: Likewise.
2126 * condvar.c: Likewise.
2127 * internals.h: Likewise.
2128 * join.c: Likewise.
2129 * manager.c: Likewise.
2130 * mutex.c: Likewise.
2131 * pthread.c: Likewise.
2132 * ptlongjmp.c: Likewise.
2133 * queue.h: Likewise.
2134 * rwlock.c: Likewise.
2135 * semaphore.c: Likewise.
2136 * semaphore.h: Likewise.
2137 * signals.c: Likewise.
2138 * spinlock.c: Likewise.
2139 * spinlock.h: Likewise.
75c3a84f 2140 * sysdeps/pthread/pthread.h: Likewise.
df4099e8 2141 Patches by Xavier Leroy.
3387a425 2142
0ca7e46e 2143 * sysdeps/i386/i686/pt-machine.h: New file.
75c3a84f 2144
3387a425
UD
21451998-06-25 Ulrich Drepper <drepper@cygnus.com>
2146
2147 * sysdeps/pthread/pthread.h: Make [sg]et_stacksize and
2148 [sg]et_stackaddr prototypes always available.
2149
2150 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2151 _POSIX_THREAD_ATTR_STACKSIZE and _POSIX_THREAD_ATTR_STACKADDR.
2152
d47aac39
UD
21531998-06-24 Ulrich Drepper <drepper@cygnus.com>
2154
2155 * manager.c (pthread_free): Undo patch from 980430.
2156 Reported by David Wragg <dpw@doc.ic.ac.uk>.
2157
69f234e8
UD
21581998-06-09 15:07 Ulrich Drepper <drepper@cygnus.com>
2159
2160 * manager.c: Define __pthread_manager_adjust_prio and use it to
2161 increase priority when needed.
2162 * internals.h: Add prototype for __pthread_manager_adjust_prio.
2163 * mutex.c: Optimize mutexes to wake up only one thread.
768cbca8 2164 * pthread.c: Move PID of manager for global variable in structure
69f234e8
UD
2165 element.
2166 Patches by Xavier Leroy.
2167
c0fb8a56
UD
21681998-06-07 13:47 Ulrich Drepper <drepper@cygnus.com>
2169
2170 * sysdeps/pthread/bits/libc-lock.h: Optimize cleanup handlers a bit.
2171
c6bd526f
UD
21721998-06-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
2173
2174 * attr.c: Correct typo.
2175
f9119f49
UD
21761998-05-01 Ulrich Drepper <drepper@cygnus.com>
2177
2178 * manager.c (pthread_free): Unmap guard before the stack.
2179 Patch by Matthias Urlichs.
2180
3dd2c3e2
UD
21811998-04-30 Ulrich Drepper <drepper@cygnus.com>
2182
2183 * manager.c (pthread_free): Detect already free child.
2184 Patch by Xavier Leroy, reported by Matthias Urlichs.
2185
0111b224
UD
21861998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2187
2188 * Makefile (linuxthreads-version): Renamed back from
2189 libpthread-version.
2190
f12944ec
UD
21911998-04-21 Ulrich Drepper <drepper@cygnus.com>
2192
26e119f1 2193 * ptlongjmp.c: Add prototypes for __libc_siglongjmp and
f12944ec
UD
2194 __libc_longjmp.
2195
8619129f
UD
21961998-04-20 14:55 Ulrich Drepper <drepper@cygnus.com>
2197
2198 * Makefile (libpthread-routines): Add ptlongjmp and spinlock.
2199 * internals.h: Add definitions for new spinlock implementation.
2200 * ptlongjmp.c: New file.
2201 * spinlock.c: New file.
2202 * spinlock.h (acquire): Don't reschedule using __sched_yield, use
2203 new function __pthread_acquire to prevent deadlocks with thread
2204 with different priorities.
2205 Patches by Xavier Leroy <Xavier.Leroy@inria.fr>.
2206
52cda958
UD
22071998-03-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2208
2209 * manager.c (__pthread_manager): Reduce first argument to select
2210 to include just the needed file descriptor.
2211
48fc3dd2
UD
22121998-03-17 00:06 Ulrich Drepper <drepper@cygnus.com>
2213
2214 * manager.c: Fix last patch which caused core dumps.
2215
2216 * pthread.c: Correctly handle missing SIGRTMIN.
2217
f649c201
UD
22181998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2219
2220 * libpthread.map: Add __libc_internal_tsd_get and
2221 __libc_internal_tsd_set. Add missing cancelable functions. Export
2222 libc internal versions of the cancelable functions.
2223
14c44e2e
UD
22241998-03-13 16:51 Ulrich Drepper <drepper@cygnus.com>
2225
2226 * weaks.c: Define pthread_attr_init as GLIBC_2.0 and GLIBC_2.1.
2227
5d409851
UD
22281998-03-13 00:46 Ulrich Drepper <drepper@cygnus.com>
2229
2230 * attr.c: Implement pthread_attr_[gs]etguardsize,
2231 pthread_attr_[gs]setstackaddr, pthread_attr_[gs]etstacksize.
2232 Change pthread_attr_init to have two interfaces.
2233 * internals.h (struct _pthread_descr_struct): Add new fields for
2234 above functions.
2235 * libpthread.map: Add names in GLIBC_2.1 section.
2236 * manager.c (pthread_handle_create): Implement guardsize and
2237 user stack.
2238 (pthread_free): Likewise.
2239 * pthread.c (pthread_create): Add new interface for changed
2240 pthread_attr_t.
2241 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
2242 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add definition of
2243 PTHREAD_STACK_MIN.
2244
5afdca00
UD
22451998-03-11 00:42 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
2246
5d409851
UD
2247 * manager.c: Enable resetting of the thread scheduling policy
2248 to SCHED_OTHER when the parent thread has a different one.
5afdca00
UD
2249
22501998-02-01 13:51 Ulrich Drepper <drepper@cygnus.com>
2251
2252 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2253 _POSIX_ASYNCHRONOUS_IO.
2254
2255 * sysdeps/pthread/pthread.h: Define bits for Unix98 variants of
2256 mutexes.
2257 * mutex.c: Implement new mutex types.
2258
2259 * internals.h: Include <signal.h>.
2260
2261 * libpthread.map: Add __erno_location and __h_errno_location.
2262
2263 * errno.c: Return pointer to variable actually in use. This might
2264 not be the one in the thread structure.
2265 * internals.h (struct _pthread_descr_struct): Add new fields p_errnop
2266 and p_h_errnop.
2267 * manager.c (__pthread_manager): Set p_errnop and p_h_errnop member
2268 of manager thread structure.
2269 (pthread_handle_create): Set p_errnop and p_h_errnop members for new
2270 thread.
2271 * pthread.c: Adapt initializer for thread structures.
2272 (__pthread_initial_thread): Set p_errnop and p_h_errnop member.
2273 (__pthread_reset_main_thread): Reset p_errnop and p_h_errnop of
2274 current thread to global variables.
2275
22761998-01-31 17:27 Ulrich Drepper <drepper@cygnus.com>
2277
2278 * rwlock.c: New file.
2279 * Makefile (libpthread-routines): Add rwlock.
2280 * sysdeps/pthread/pthread.h: Define data structures and declare
2281 functions.
2282 * libpthread.map: Add new functions.
2283
22841997-12-18 13:50 Philip Blundell <pb@nexus.co.uk>
2285
2286 * sysdeps/arm/pt-machine.h: New file; add ARM support.
2287 * sysdeps/arm/Implies: likewise.
2288 * README: Document it.
2289
22901997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2291
2292 * signals.c: Remove unneeded initializer for sigwaited, saving a
2293 warning.
2294
22951997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2296
2297 * semaphore.c (sem_init): Set sem_spinlock only if available.
2298
22991997-12-04 01:48 Ulrich Drepper <drepper@cygnus.com>
2300
2301 * mutex.c: Implement PTHREAD_MUTEX_CHECKERROR.
2302 * sysdeps/pthread/pthread.h: Define PTHREAD_MUTEX_CHECKERROR.
2303
2304 * Makefile: Update from LinuxThreads 0.7.
2305 * internals.h. Likewise.
2306 * manager.c: Likewise.
2307 * mutex.c: Likewise.
2308 * pthread.c: Likewise.
2309 * signals.c: Likewise.
2310 * specific.c: Likewise.
2311 * Examples/ex3.c: Likewise.
2312
23131997-11-20 18:13 Ulrich Drepper <drepper@cygnus.com>
2314
2315 * pthread.c (__pthread_reset_main_thread): Close pipe only if still
2316 open.
2317
23181997-10-29 05:38 Ulrich Drepper <drepper@cygnus.com>
2319
2320 * wrapsyscall.c: Add socket functions which are also cancelation
2321 points.
2322
23231997-10-19 21:40 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
2324
2325 * specific.c (__libc_internal_tsd_set, __libc_internal_tsd_get):
2326 New functions for fast thread specific data within libc.
2327
2328 * internals.h: Add new array p_libc_specific to struct
2329 _pthread_descr_struct.
2330
2331 * sysdeps/pthread/bits/libc-lock.h: Declare new functions.
2332
23331997-10-13 05:39 Ulrich Drepper <drepper@cygnus.com>
2334
2335 * semaphore.h: Add __BEGIN_DECLS/__END_DECLS.
2336 Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
2337
23381997-08-29 03:05 Ulrich Drepper <drepper@cygnus.com>
2339
2340 * internals.h (struct _pthread_descr_struct): Add definitions for
2341 two-level specific key handling.
2342 * manager.c (pthread_handle_create): Initialize specific memory array.
2343 * specific.c: Implement two-level key handling.
2344 * weaks.c: Don't provide dummy key handling.
2345 * sysdeps/pthread/bits/libc-lock.h: Typedef __libc_lock_t (no #define).
2346 Add definition of __libc_key_t.
2347 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define PTHREAD_KEYS_MAX
2348 as 1024.
2349 Add definition of _POSIX_THREAD_DESTRUCTOR_ITERATIONS and
2350 PTHREAD_DESTRUCTOR_ITERATIONS.
2351
2352 * manager.c (pthread_handle_create): Compare mmap result with
2353 MAP_FAILED.
2354
2355 * ptfork.c: Rename to __pthread_atfork and make old name a weak alias.
2356 * sysdeps/pthread/bits/pthread.h: Add prototype for __pthread_atfork.
2357
23581997-08-22 19:04 Richard Henderson <rth@cygnus.com>
2359
2360 sysdeps/sparc -> sysdeps/sparc/sparc32
2361 sysdeps/sparc64 -> sysdeps/sparc/sparc64
2362
2363 * internals.h: Change definition of THREAD_SELF to be an expression,
2364 not a statement that did a return.
2365 * sysdeps/alpha/pt-machine.h (THREAD_SELF): Update accordingly.
2366 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
2367 Follow Solaris and use a "system reserved" register (%g6) to hold
2368 the thread descriptor.
2369 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2370
23711997-08-03 00:09 Ulrich Drepper <drepper@cygnus.com>
2372
2373 * mutex.c: Correct pthread_once. Patch by Xavier Leroy.
2374 * sysdeps/pthread/pthread.h: Add prototype for __pthread_once.
2375 * sysdeps/pthread/bits/pthread.h: Add macros for __libc_once.
2376
2377 * semaphore.c: Include spinlock.h only when needed.
2378
2379 * specific.c (__pthread_setsepcific, __pthread_getspecific): Reject
2380 keys for entries not in use.
2381
2382 * weaks.c: Implement key handling functions for real.
2383
23841997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu>
2385
2386 Initial sparc64-linux support:
d364e525
UD
2387 * sysdeps/sparc64/Implies: New file.
2388 * sysdeps/sparc64/pt-machine.h: Likewise.
5afdca00
UD
2389
23901997-06-29 00:48 Ulrich Drepper <drepper@cygnus.com>
2391
2392 * semaphore.c: Include spinlock.h at correct place.
2393 Patch by HJ Lu.
2394
23951997-06-13 10:06 Richard Henderson <rth@tamu.edu>
2396
2397 The Great Bit File Move:
2398 * sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h.
2399 * sysdeps/powerpc/semaphorebits.h: Likewise.
2400 * sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise.
2401 * sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise.
2402 * sysdeps/pthread/libc-lock.h: -> bits/
2403 * sysdeps/pthread/stdio-lock.h: Likewise.
2404 * sysdeps/unix/sysv/linux/local_lim.h: Likewise.
2405 * sysdeps/unix/sysv/linux/posix_opt.h: Likewise.
2406 * semaphore.h: Likewise.
2407 * sysdeps/pthread/pthread.h: Likewise.
2408
2409 * lockfile.c: <foo.h> -> <bits/foo.h>.
2410 * semaphore.h: Likewise.
2411
2412 * Makefile: (headers): foo.h -> bits/foo.h.
2413 * sysdeps/pthread/Makefile: Likewise.
2414
24151997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2416
2417 * semaphore.c (sem_init): Set sem_spinlock only if available.
2418
2419 * sysdeps/m68k/pt-machine.h (testandset, __compare_and_swap): Fix
2420 asm constraints.
2421
24221997-04-09 03:00 Ulrich Drepper <drepper@cygnus.com>
2423
2424 Update from LinuxThreads 0.6.
2425
2426 * attr.c (pthread_attr_getdetachstate): Use __sched_get_priority_max
2427 and __sched_get_priority_min instead of names without `__'.
2428
2429 * manager.c: Rewrite large parts to implement opaque pthread_t.
2430
2431 * cancel.c: Adapt for opaque pthread_t type.
2432 * condvar.c: Likewise.
2433 * errno.c: Likewise.
2434 * join.c: Likewise.
2435 * mutex.c: Likewise.
2436 * pthread.c: Likewise.
2437 * signals.c: Likewise.
2438 * specific.c: Likewise.
2439 * restart.h: Likewise.
2440 * queue.h: Likewise.
2441 * Examples/ex3.c: Likewise.
2442 * Examples/ex4.c: Likewise.
2443 * sysdeps/pthread/pthread.h: Likewise.
2444
2445 * pthread.c: Accumulate time for all threads in thread manager.
2446
2447 * semaphore.c: Implement fallback implementation for architectures
2448 sometimes missing compare-exchange operations.
2449
2450 * cancel.c (pthread_cancel): Validate handle argument.
2451 * join.c (pthread_join): Likewise.
2452 (pthread_detach): Likewise.
2453 * signals.c (pthread_kill): Likewise.
2454
2455 * spinlock.h (acquire): Use __sched_yield not sched_yield.
2456
2457 * queue.h (enqueue): Enqueue thread according to priority.
2458
2459 * internals.c (struct pthread_start_args): New struct for passing
2460 args to cloning function.
2461 (struct _pthread): Rename to _pthread_descr_struct and adapt for
2462 opaque pthread_t.
2463
2464 * Examples/Makefile (clean): Pass -f option to rm.
2465
2466 * sysdeps/i386/pt-machine.h: Add check for compare-exchange instruction
2467 and define TEST_FOR_COMPARE_AND_SWAP.
2468 * sysdeps/i386/i486/pt-machine.h: Removed.
2469
2470 * sysdeps/unix/sysv/linux/local_lim.h (PTHREAD_THREADS_MAX): Increase
2471 to 1024.
2472
24731997-04-04 16:38 Ulrich Drepper <drepper@cygnus.com>
2474
2475 * restart.h (suspend): Clear p_signal before suspending.
2476 (suspend_with_cancellation): Likewise.
2477 Patch by Xavier Leroy <Xavier.Leroy@inria.fr>.
2478
2479 * weaks.c: Make __pthread_key_create return 1.
2480 * sysdeps/pthread/libc-lock.h: Define __libc_key_create,
2481 __libc_getspecific, __libc_setspecific, and __libc_key_t.
2482 * sysdeps/pthread/stdio-lock.h: Don't care for implementation not
2483 using libio.
2484
24851997-03-19 15:13 Miguel de Icaza <miguel@nuclecu.unam.mx>
2486
2487 * sysdeps/sparc/pt-machine (RELEASE): Fix.
2488
24891997-03-01 07:55 Geoff Keating <geoffk@ozemail.com.au>
2490
2491 * sysdeps/powerpc/Implies: Added.
2492 * sysdeps/powerpc/pt-machine.h: Added.
2493 * sysdeps/powerpc/semaphorebits.h: Added.
2494
24951997-01-22 01:22 Ulrich Drepper <drepper@cygnus.com>
2496
d364e525 2497 * pthread.c (__pthread_initial_thread): Correct
5afdca00
UD
2498 initializer.
2499 (__pthread_manager_thread): Likewise.
2500 Reported by Andreas Jaeger.
2501
25021997-01-18 22:15 Richard Henderson <rth@tamu.edu>
2503
2504 Since sigset_t no longer fits in a register, we can't pass in the
2505 thread's initial mask so easily. Take this opportunity to simplify
2506 the clone implementation by only accepting a single void* argument.
2507
d364e525
UD
2508 * manager.c (__pthread_manager): Put thread vitals in the thread
2509 struct instead of as arguments through clone.
5afdca00 2510 (pthread_start_thread): Look for them there.
d364e525 2511 * internals.h (struct _pthread): Add p_initial_fn,
5afdca00 2512 p_initial_fn_arg, p_initial_mask. Fix __pthread_manager proto.
d364e525 2513 * pthread.c (pthread_initialize_manager): Revise clone invocation.
This page took 0.397717 seconds and 5 git commands to generate.