| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
when old keys are referenced (after pthread_key_delete()) via
pthread_getspecific().
Notes:
svn path=/head/; revision=92730
|
| |
|
|
|
|
|
|
|
| |
these should return EBUSY when the calling thread would block.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=92360
|
| |
|
|
|
|
|
| |
canceled or the joinee is detached.
Notes:
svn path=/head/; revision=91762
|
| |
|
|
| |
Notes:
svn path=/head/; revision=90774
|
| |
|
|
|
|
|
|
|
|
|
|
| |
due to.
PR: misc/30699
Reviewed by: jasone, ru
Approved by: jasone, ru
MFC after: 1 week
Notes:
svn path=/head/; revision=90656
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of an alternate signal stack for handling signals. Let the kernel
send signals on the stack of the current thread and teach the threads
signal handler how to deliver signals to the current thread if it
needs to. Also, always store a threads context as a jmp_buf. Eventually
this will change to be a ucontext_t or mcontext_t.
Other small nits. Use struct pthread * instead of pthread_t in internal
library routines. The threads code wants struct pthread *, and pthread_t
doesn't necessarily have to be the same.
Reviewed by: jasone
Notes:
svn path=/head/; revision=90431
|
| |
|
|
|
|
|
|
|
|
|
|
| |
return address when modifying a jmp_buf to create a new thread context.
Also set t12 with the return address.
This should fix libc_r on alpha.
With much detective work by: Bernd Walter <ticso@cicely.de>
Notes:
svn path=/head/; revision=88401
|
| |
|
|
|
|
|
|
|
| |
archs. This should fix libc_r on alpha.
Submitted by: Bernd Walter <ticso@cicely9.cicely.de>
Notes:
svn path=/head/; revision=88092
|
| |
|
|
|
|
|
|
|
|
|
| |
the target thread of the join operation. This allows the cancelled
thread to detach the target thread in its cancellation handler.
This bug was found by Butenhof's cancel_subcontract test.
Reviewed by: jasone
Notes:
svn path=/head/; revision=88015
|
| |
|
|
|
|
|
| |
when cancelling a thread.
Notes:
svn path=/head/; revision=87988
|
| |
|
|
|
|
|
|
|
|
| |
the joining thread is in a signal handler.
Reported by: Loren James Rittle <rittle@labs.mot.com>
MFC after: 1 week
Notes:
svn path=/head/; revision=86499
|
| |
|
|
|
|
|
|
| |
PR: docs/31745
Submitted by: Andrew <andrew@ugh.net.au>
Notes:
svn path=/head/; revision=86074
|
| |
|
|
|
|
|
|
| |
PR: 31747
Submitted by: <andrew@ugh.net.au>
Notes:
svn path=/head/; revision=86050
|
| |
|
|
|
|
|
|
|
|
| |
kernel #defines to figure out where the stack is located. This stops
libc_r from exploding when the kernel is compiled with a different
KVM size. IMHO this is all kinda bogus, it would be better to just
check %esp and work from that.
Notes:
svn path=/head/; revision=85567
|
| |
|
|
| |
Notes:
svn path=/head/; revision=85559
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- uthread_signal.c; libc_r does not wrap signal() since 1998/04/29.
- uthread_attr_setprio.c; it was never connected to the build, and
pthread_attr_setprio() does not exist in POSIX.
- uthread_sigblock.c and uthread_sigsetmask.c; these were no-ops
bloating libc_r's space.
pthread_private.h:
- Removed prototypes of non-syscalls: send().
- Removed prototypes of unused syscalls: sigpending(), sigsuspend(),
and select().
- Fixed prototype of fork().
- MFS: Fixed prototypes of <sys/socket.h> syscalls.
Reviewed by: deischen
Approved by: deischen, jasone
Notes:
svn path=/head/; revision=85557
|
| |
|
|
| |
Notes:
svn path=/head/; revision=85451
|
| |
|
|
| |
Notes:
svn path=/head/; revision=84768
|
| |
|
|
|
|
|
|
|
|
| |
from occurring when converting from a timeval/timespec to a timeout in
milliseconds.
Submitted by: dwmalone
Notes:
svn path=/head/; revision=84610
|
| |
|
|
| |
Notes:
svn path=/head/; revision=84306
|
| |
|
|
|
|
|
| |
Submitted by: yar
Notes:
svn path=/head/; revision=82642
|
| |
|
|
|
|
|
|
|
| |
instead of char *.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=81975
|
| |
|
|
|
|
|
|
|
| |
could cause deadlock after interruption due to a signal.
Reviewed by: deischen
Notes:
svn path=/head/; revision=81918
|
| |
|
|
|
|
|
|
|
|
| |
Do not detach canceled threads.
Reported by: Arno Klaassen <arno@heho.snv.jussieu.fr>
Collaboration with: deischen
Notes:
svn path=/head/; revision=81750
|
| |
|
|
| |
Notes:
svn path=/head/; revision=81589
|
| |
|
|
| |
Notes:
svn path=/head/; revision=81588
|
| |
|
|
| |
Notes:
svn path=/head/; revision=81586
|
| |
|
|
| |
Notes:
svn path=/head/; revision=81524
|
| |
|
|
|
|
|
| |
Reviewed by: ru
Notes:
svn path=/head/; revision=81352
|
| |
|
|
|
|
|
|
|
|
|
| |
be malloc()ed, but they are now allocated using mmap(), just as the
default-size stacks are. A separate cache of stacks is kept for
non-default-size stacks.
Collaboration with: deischen
Notes:
svn path=/head/; revision=80021
|
| |
|
|
| |
Notes:
svn path=/head/; revision=79754
|
| |
|
|
| |
Notes:
svn path=/head/; revision=79531
|
| |
|
|
| |
Notes:
svn path=/head/; revision=79454
|
| |
|
|
| |
Notes:
svn path=/head/; revision=79366
|
| |
|
|
|
|
|
|
|
| |
a signal handler from the scheduler.
MFC after: 1 week
Notes:
svn path=/head/; revision=78979
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
atomically:
1) Search _thread_list for the thread to join.
2) Search _dead_list for the thread to join.
3) Set the running thread as the joiner.
While we're at it, fix a race in the case where multiple threads try to
join on the same thread. POSIX says that the behavior of multiple joiners
is undefined, but the fix is cheap as a result of the other fix.
Notes:
svn path=/head/; revision=78873
|
| |
|
|
|
|
|
|
| |
Submitted by: Murray S. Kucherawy <msk@sendmail.com>
MFC after: 3 days
Notes:
svn path=/head/; revision=78869
|
| |
|
|
|
|
|
| |
Obtained from: OpenBSD
Notes:
svn path=/head/; revision=77742
|
| |
|
|
| |
Notes:
svn path=/head/; revision=77741
|
| |
|
|
| |
Notes:
svn path=/head/; revision=76913
|
| |
|
|
| |
Notes:
svn path=/head/; revision=76912
|
| |
|
|
| |
Notes:
svn path=/head/; revision=76911
|
| |
|
|
| |
Notes:
svn path=/head/; revision=76910
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
keep track of a joiner. POSIX only supports a single joiner, so this
simplification is acceptable.
At the same time, make sure to mark a joined thread as detached so that
its resources can be freed.
Reviewed by: deischen
PR: 24345
Notes:
svn path=/head/; revision=76909
|
| |
|
|
|
|
|
|
| |
PR: docs/27411
Submitted by: David Wimsey <dwimsey@rtci.com>
Notes:
svn path=/head/; revision=76795
|
| |
|
|
|
|
|
|
|
|
|
| |
there is no need to wake all waiters to assure that the highest priority
thread is run. As the semaphore code is written, there was no correctness
problem, but the change improves sem_post() performance.
Pointed out by: deischen
Notes:
svn path=/head/; revision=76781
|
| |
|
|
| |
Notes:
svn path=/head/; revision=76699
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
process on fork(2).
It is the supposed behavior stated in the manpage of sigaction(2), and
Solaris, NetBSD and FreeBSD 3-STABLE correctly do so.
The previous fix against libc_r/uthread/uthread_fork.c fixed the
problem only for the programs linked with libc_r, so back it out and
fix fork(2) itself to help those not linked with libc_r as well.
PR: kern/26705
Submitted by: KUROSAWA Takahiro <fwkg7679@mb.infoweb.ne.jp>
Tested by: knu, GOTOU Yuuzou <gotoyuzo@notwork.org>,
and some other people
Not objected by: hackers
MFC in: 3 days
Notes:
svn path=/head/; revision=76336
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
placed in any scheduling queue(s). The process of dispatching
signals to a thread can change its state which will attempt to add
or remove the thread from any scheduling queue to which it belongs.
This can break some assertions if the thread isn't in the queue(s)
implied by its state.
When adding dispatching a pending signal to a thread, be sure to
remove the signal from the threads set of pending signals.
PR: 27035
Tested by: brian
MFC in: 1 week
Notes:
svn path=/head/; revision=76280
|
| |
|
|
| |
Notes:
svn path=/head/; revision=76179
|