| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Submitted by: bde
Tested by: beast
|
|
|
|
| |
add it to CFLAGS.
|
|
|
|
| |
Submitted by: bde
|
|
|
|
|
| |
Noticed by: ted@NLnetLabs.nl (Ted Lindgreen)
Approved by: ru
|
| |
|
|
|
|
|
| |
Don't cast thread_self() to int. Cast to uintptr_t. Pull in the
predefined printf format from <inttypes.h>
|
|
|
|
|
| |
In recurse(), cast the pointer difference to int to match the format.
The difference is expected to fit in an int.
|
|
|
|
|
|
| |
don't allow it at the moment, the correct thing to do is try again.
Otherwise, libthr would fail this test because it doesn't allow
an unlimited number of concurrent threads per application.
|
| |
|
|
|
|
| |
the same src/lib/libc_r/test/* tests that the other platforms pass.
|
|
|
|
|
|
| |
libthr. Oops, sorry about that.
Submitted by: "Simon L. Nielsen" <simon@nitro.dk>
|
| |
|
|
|
|
|
|
|
|
|
| |
stale stdio descriptors flags.
PR: bin/51535
Submitted by: Enache Adrian <enache@rdslink.ro>
Reviewed by: deischen
Approved by: re (scottl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
an excessive close() on one of these descriptors would cause
a memory for this descriptor to be allocated in the internal
descriptor table. When this descriptor gets used again, e.g.
through the call to open() or socket(), the descriptor would
be erroneously left in the blocking mode, and the whole
application would get stuck on a blocking operation, e.g.,
in accept(2).
Prevent this bug from happening by disallowing close() against
non-active descriptors (return -1 and set errno to EBADF in
this case).
Reviewed by: deischen
Approved by: re (scottl)
|
|
|
|
| |
Approved by: re (blanket)
|
|
|
|
|
|
|
|
|
| |
libthr. No changes were made to libpthread by request of deischen,
who will soon commit a real implementation for that library.
PR: standards/50848
Submitted by: Sergey A. Osokin <osa@freebsd.org.ru>
MFC after: 1 week
|
|
|
|
|
|
| |
more complicated things than just setting the lock to 0.
- Implement stubs for this function in libc and the two threading libraries
that are currently in the tree.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not save (restore) the global pointer (GP) in the jmpbuf in setjmp
(longjmp) because it's not needed in general. GP is considered a
scratch register at callsites and hence is always restored after a
call (when it's possible that the call resolves to a symbol in a
different loadmodule; otherwise GP does not have to be saved and
restored at all), including calls to setjmp/longjmp. There's just
one problem with this now that we use setjmp/longjmp for context
switching: A new context must have GP defined properly for the
thread's entry point. This means that we need to put GP in the
jmpbuf and consequently that we have to restore is in longjmp.
This automaticly requires us to save it as well.
When setjmp/longjmp isn't used for context switching, this can be
reverted again.
|
|
|
|
|
|
|
|
|
|
|
| |
integral type to the size of a pointer type when it's known that the
cast is valid. On ia64 such casts are generally bad news and has led
us (=peter :-) to make such casts fatal. By casting to intptr_t
before casting to a pointer type, this now compiles cleanly in LP64
architectures. Note that the final cast has been changed to void*
(instead of siginfo_t*) to make it explicit that we're not trying to
pass a siginfo_t pointer but rather trying to pass an int when the
prototype says it should be a pointer.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add manual pages for following functions:
. pthread_attr_setcreatesuspend_np(3)
. pthread_main_np(3)
. pthread_multi_np(3)
. pthread_single_np(3)
. pthread_mutexattr_getkind_np(3)
. pthread_mutexattr_setkind_np(3)
. pthread_resume_all_np(3)
. pthread_resume_np(3)
. pthread_set_name_np(3)
. pthread_suspend_all_np(3)
. pthread_suspend_np(3)
. pthread_switch_add_np(3)
. pthread_switch_delete_np(3)
MFC after: 3 days
|
|
|
|
|
|
| |
section. Add cross reference to pthread_attr_getstack() function.
MFC after: 1 day
|
| |
|
|
|
|
| |
functions and remove links for 3 non-existent functions
|
| |
|
|
|
|
| |
Submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
| |
|
|
|
|
| |
rev 1.3 of uthread_attr_get_np.c)
|
|
|
|
|
|
| |
address instead of specified by pthread_attr_t passed to pthread_create().
Suggested by: deischen
|
| |
|
| |
|
|
|
|
| |
of polishing.
|
|
|
|
| |
in certain special cases.
|
|
|
|
|
| |
about it always returning EPERM. Document that ENFILE occurs when the
limit on kernel semaphores is reached.
|
|
|
|
| |
to use these semaphore functions.
|
|
|
|
|
|
| |
overflow when dumping thread info (generated by receipt of SIGINFO).
Reported by: jmallet
|
|
|
|
| |
to be consistent with other pthread_XXX functions
|
|
|
|
|
|
|
|
|
|
|
| |
because we have 2 stacks per thread: the regular downward
memory stack and the irregular upward register stack. This
implementation lets both stacks grow toward each other. An
alternative scheme is to have them grow away from each other.
The alternate scheme has the advantage that both stack grow
toward guard pages. Since libc_r is virtually dead and we
really want the *context stuff for thread switching, we don't
try to be perfect, just functional.
|
| |
|
|
|
|
|
| |
des; I tweaked it slightly by extending the membar and making it match
the style of the rest of the sparc64 assembler code.
|
|
|
|
| |
Submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
| |
|
| |
|
|
|
|
|
|
| |
and sendto() cancelation points, as required by POSIX.1-2001.
Reviewed by: deischen
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Both are atomic, but the cmpxchg has memory ordering hints. We
give this acquire semantics.
NOTE: The unlock in libc_r is implemented by a "normal" assign
statement. This is not correct on ia64 due to the memory ordering
characteristics of the architecture. We need release semantics
for an unlock.
|