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