summaryrefslogtreecommitdiffstats
path: root/lib/libc_r
Commit message (Collapse)AuthorAgeFilesLines
...
* Properly clear the status of a join operation if the joining thread isdeischen2002-03-062-1/+4
| | | | canceled or the joinee is detached.
* Fix a bug where a short write to a non-blocking socket wouldjb2002-02-221-1/+4
| | | | | | | leave the descriptor locked, causing other threads to hang if they happened to access the socket. MFC after: 5 days
* Don't rely on <sys/signal.h> to include <sys/ucontext.h>deischen2002-02-171-0/+1
|
* Prevent dup2(2) from closing internal libc_r pipe descriptors.maxim2002-02-141-1/+2
| | | | | | | PR: misc/28947 Reviewed by: jasone, ru Approved by: jasone, ru MFC after: 1 week
* Correct a typo pthread_attr_setscope() function fails unconditionallymaxim2002-02-141-1/+1
| | | | | | | | | due to. PR: misc/30699 Reviewed by: jasone, ru Approved by: jasone, ru MFC after: 1 week
* This has been sitting in my local tree long enough. Remove the usedeischen2002-02-095-268/+167
| | | | | | | | | | | | | | 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
* Silence a warning by initializing the return value. This wasn'tdeischen2002-02-091-2/+3
| | | | | set in the case of a short write, and I think returning 0 for this is what was intended.
* Undo the work-around for the sendfile bug where nbytes needed the hdr/trldg2002-01-221-11/+0
| | | | | | | size added to it in order for it to work properly when nbytes != 0. Reviewed by: alfred MFC after: 3 days
* Use the real function address (instead of function address + 8) for thedeischen2001-12-221-2/+2
| | | | | | | | | 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>
* Fix the retrieval of USRSTACK via sysctl so that it works for 64-bitdeischen2001-12-181-2/+2
| | | | | | archs. This should fix libc_r on alpha. Submitted by: Bernd Walter <ticso@cicely9.cicely.de>
* When cancelling a thread while in a join operation, do not detachdeischen2001-12-161-4/+1
| | | | | | | | 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
* Pull the target thread of a join operation from the correct placedeischen2001-12-151-3/+4
| | | | when cancelling a thread.
* Fix a number of subtle and evil bugs in the libc_r wrapping of sendfile(2).alfred2001-12-121-4/+50
| | | | | | | | | | | | | | | | | | | | | | o) Since we unwrap the sendfile syscall, check the return value of writev(2) to see if it didn't complete all the data. Previously if only a partial writev() succeeded, it would proceed to sendfile(2) even though the headers weren't completely sent. o) Properly adjust the "bytes to send" to take into account sendfile(2)'s behaviour of counting the headers against the bytes to be transfered from the file. o) Correct the problem where EAGAIN was being returned from _sys_sendfile(2) however the wrapper didn't update the 'sent bytes' parameter to take into account for it. This is because sendfile can return EAGAIN even though it has actually transfered data. Special thanks to Justin Erenkrantz <jerenkrantz@apache.org> for bringing this to my attention and giving an excellent way to reproduce the problem. PR: kern/32684 MFC After: 1 week
* Prevent infinite loop, when kevent(2) is called wihout eventlist (i.e.sobomax2001-12-081-1/+1
| | | | eventlist == NULL or nevents == 0).
* Fix pthread_join so that it works if the target thread exits whiledeischen2001-11-174-10/+32
| | | | | | | the joining thread is in a signal handler. Reported by: Loren James Rittle <rittle@labs.mot.com> MFC after: 1 week
* Describe handling of NULLs passed to pthread_setcancelstate().murray2001-11-051-2/+10
| | | | | PR: docs/31745 Submitted by: Andrew <andrew@ugh.net.au>
* Mark up NULL in .Dv.dd2001-11-041-1/+3
| | | | | PR: 31747 Submitted by: <andrew@ugh.net.au>
* Make libc_r check the kern.usrstack sysctl instead of using internalpeter2001-10-263-6/+20
| | | | | | | 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.
* Style: sort __sys_foo() prototypes, tabs -> spaces, etc.ru2001-10-261-78/+78
|
* Removed:ru2001-10-266-218/+10
| | | | | | | | | | | | | | | | | | | | | | | | - 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
* Change #include "DEFS.h" to <machine/asm.h>.peter2001-10-252-2/+2
|
* In the words of the submitter:deischen2001-10-211-2/+10
| | | | | | | | | | | | | In libc_r, if _FDLOCKS_ENABLED is not defined, there is no guarantee in many of the sycall wrappers that _thread_fd_table[fd] is initialized. This causes problems for programs that pass in file descriptors and execve() another program; when the exec'ed program tries to do an fcntl() or other syscall on the passed-in fd, it fails. Add calls to initialize the FD table entry for _thread_fd_lock and _thread_fd_lock_debug. Submitted by: Peter S. Housel <housel@acm.org>
* Compensate for "Compensate for header dethreading" by backing it out.bde2001-10-104-8/+0
|
* Limit maximum poll interval to 60 seconds. This prevents an overflowdeischen2001-10-071-0/+3
| | | | | | | from occurring when converting from a timeval/timespec to a timeout in milliseconds. Submitted by: dwmalone
* mdoc(7) police: Use the new .In macro for #include statements.ru2001-10-0148-50/+50
|
* Use ``.Rv -std'' wherever possible.ru2001-08-311-8/+1
| | | | Submitted by: yar
* Mark some functions as __printflike() and/or taking const char * argumentskris2001-08-201-0/+3
| | | | | | instead of char *. MFC after: 2 weeks
* Fix logic errors in pthread_cond_wait() and pthread_cond_timedwait() thatjasone2001-08-191-68/+52
| | | | | | could cause deadlock after interruption due to a signal. Reviewed by: deischen
* Fix a bug in canceling joining threads.jasone2001-08-163-2/+18
| | | | | | | Do not detach canceled threads. Reported by: Arno Klaassen <arno@heho.snv.jussieu.fr> Collaboration with: deischen
* mdoc(7) police: s/OpenBSD/.Ox/ where appropriate.ru2001-08-131-1/+4
|
* Spell "FreeBSD" with "F" and "BSD" in uppercase.ru2001-08-1313-13/+13
|
* Removed duplicate VCS ID tags, as per style(9).ru2001-08-132-6/+0
|
* Make the name parameter const char *.imp2001-08-111-1/+1
|
* Use the ``.Rv -std'' mdoc(7) macro in appropriate cases.yar2001-08-094-24/+4
| | | | Reviewed by: ru
* Implement pthread_attr_[gs]etguardsize(). Non-default-size stacks used tojasone2001-07-2015-176/+619
| | | | | | | | 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
* Remove whitespace at EOL.dd2001-07-1518-48/+48
|
* mdoc(7) police: removed HISTORY info from the .Os call.ru2001-07-1024-24/+24
|
* mdoc(7) police: remove extraneous .Pp before and/or after .Sh.dd2001-07-0921-24/+0
|
* mdoc(7) police: sort SEE ALSO xrefs (sort -b -f +2 -3 +1 -2).ru2001-07-065-10/+10
|
* Clear the in thread scheduler flag after jumping to the start ofdeischen2001-06-291-0/+6
| | | | | | a signal handler from the scheduler. MFC after: 1 week
* Fix a race condition in pthread_join(). All of the following must occurjasone2001-06-273-48/+53
| | | | | | | | | | | | 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.
* Typo fix: requires -> reacquiresgshapiro2001-06-271-1/+1
| | | | | Submitted by: Murray S. Kucherawy <msk@sendmail.com> MFC after: 3 days
* Add a missing word.dd2001-06-051-1/+1
| | | | Obtained from: OpenBSD
* Add a missing word.dd2001-06-051-1/+2
|
* Add a test for PR 24345.jasone2001-05-202-0/+110
|
* Update the verify script.jasone2001-05-202-201/+162
|
* Don't define _REENTRANT, since the Makefile does so.jasone2001-05-201-2/+0
|
* Fix a typo.jasone2001-05-201-1/+1
|
* Instead of using a join queue for each thread, use a single pointer tojasone2001-05-2011-146/+107
| | | | | | | | | | | 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
* Fixed typo in the description.ru2001-05-181-2/+2
| | | | | PR: docs/27411 Submitted by: David Wimsey <dwimsey@rtci.com>
OpenPOWER on IntegriCloud