aboutsummaryrefslogtreecommitdiff
path: root/lib/libc_r/uthread
Commit message (Collapse)AuthorAgeFilesLines
...
* Be more agresive on arguments' checking.Alexey Zelkin2002-10-261-1/+4
| | | | | | | | OK'ed by: deischen MFC after: 3 days Notes: svn path=/head/; revision=105984
* remove unused __sys_sigaltstack() declarationMax Khon2002-10-221-1/+0
| | | | | | | Approved by: deischen Notes: svn path=/head/; revision=105728
* When dumping thread info, only include the filename and line if we actuallyJuli Mallett2002-10-201-3/+9
| | | | | | | | | | know what file! (Prevents use of NULL). MFC after: 1 day Reviewed by: deischen Notes: svn path=/head/; revision=105583
* FD locking is not enabled anymore, so the table which contains the ownerJuli Mallett2002-10-171-4/+0
| | | | | | | | | | | of a file descriptor has NULL entries, so don't dereference the table entries to get the owners ever -- don't print the owners when processing a thread_dump request as a result of SIGINFO. Reviewed by: deischen Notes: svn path=/head/; revision=105356
* fix typo in comments (in preparation for MFC)Max Khon2002-10-151-1/+1
| | | | | | | Approved by: deischen Notes: svn path=/head/; revision=105158
* Dump in $TMPDIR if !setugid, and use mode 0644 instead of 0666.Kris Kennaway2002-10-131-7/+11
| | | | | | | MFC after: 2 weeks Notes: svn path=/head/; revision=105038
* Once again, remove the i386-specific hacks to save and restoreDaniel Eischen2002-10-051-9/+0
| | | | | | | | | | | the FPU state on receiving and returning from a signal. The FPU save and restore macros are no longer needed, but remain defined in case we need to use them again (something else breaks). They'll be removed permanently once new syscalls are added to handle the new i386 ucontext size. Notes: svn path=/head/; revision=104497
* Add the 'restrict' type qualifier to the prototypes of `sigaction',Robert Drehmel2002-10-021-1/+1
| | | | | | | | | `sigprocmask', `sigaltstack', and `sigwait' as well as to the prototypes of the apparantly unimplemented functions `sigtimedwait' and `sigwaitinfo'. This complies with IEEE Std 1003.1-2001. Notes: svn path=/head/; revision=104368
* Install library-installed signal handlers with the SA_RESTART flagDaniel Eischen2002-09-303-3/+3
| | | | | | | set. Notes: svn path=/head/; revision=104192
* Add back the i386-specific hack to save and restore the FP stateDaniel Eischen2002-09-302-4/+4
| | | | | | | | | to/from a ucontext when a thread is interrupted by a signal. This will be removed when a proper fix is made in the kernel to save/restore the FP state without breaking the ABI. Notes: svn path=/head/; revision=104189
* Part of a bandaid to get libc_r on air again.Julian Elischer2002-09-191-0/+4
| | | | | | | | Submitted by: Dan Eischen (deischen@freebsd.org) Pointy hat for breakage just before going offline: Mini@freebsd.org Notes: svn path=/head/; revision=103624
* Remove much of the dereferencing of the fd table entries to lookDaniel Eischen2002-08-2921-39/+69
| | | | | | | | | | | | | | at file flags and replace it with functions that will avoid null pointer checks. MFC to be done by archie ;-) PR: 42100 Reviewed by: archie, robert MFC after: 3 days Notes: svn path=/head/; revision=102590
* Make the libc_r version of select() set the readable or writableArchie Cobbs2002-08-291-4/+6
| | | | | | | | | | | | | file descriptor bit if poll() returns POLLERR, POLLHUP, or POLLNVAL. Othewise, it's possible for select() to return successfully but with no bits set. Reviewed by: deischen MFC after: 3 days PR: bin/42175 Notes: svn path=/head/; revision=102586
* When poll(2)'ing for readability or writability of a file descriptorArchie Cobbs2002-08-291-2/+6
| | | | | | | | | | | on behalf of a thread, we should check the POLLERR, POLLHUP, and POLLNVAL flags as well to wake up the thread in these cases. Suggested by: deischen MFC after: 3 days Notes: svn path=/head/; revision=102546
* Replace various spelling with FALLTHROUGH which is lint()ablePhilippe Charnier2002-08-251-1/+1
| | | | Notes: svn path=/head/; revision=102411
* Oops, forgot to set the suspended flag for threads that are createdDaniel Eischen2002-07-091-2/+3
| | | | | | | | | | initially suspended. This was preventing such threads from getting resumed. Reported by: Bill Huey <billh@gnuppy.monkey.org> Notes: svn path=/head/; revision=99660
* Make sigpending and sigsuspend account for signals that are pending onDaniel Eischen2002-06-282-5/+27
| | | | | | | | | the process as well as pending on the current thread. Reported by: Andrew MacIntyre <andymac@bullseye.apana.org.au> Notes: svn path=/head/; revision=98976
* Add a wrapper for pselect() in order to make it a cancellation point.Daniel Eischen2002-06-282-0/+55
| | | | | | | Prompted by: wollman Notes: svn path=/head/; revision=98975
* Fix a bug which prevented the duplication of the standard i/oRobert Drehmel2002-06-231-13/+24
| | | | | | | | | | | | file descriptors in programs linked with libc_r with flags other than the default ones. This kept, inter alia, freopen() from working correctly when reopening standard streams. reviewed by: deischen PR: misc/39377 Notes: svn path=/head/; revision=98697
* Missed in earlier commit -- I did cvs commit src/lib/libc. Oops.Robert Watson2002-06-144-102/+0
| | | | Notes: svn path=/head/; revision=98205
* Revamp suspend and resume. While I'm here add pthread_suspend_all_np()Daniel Eischen2002-05-2413-303/+227
| | | | | | | | | | | | | | | | and pthread_resume_all_np(). These suspend and resume all threads except the current thread, respectively. The existing functions pthread_single_np() and pthread_multi_np(), which formerly had no effect, now exhibit the same behaviour and pthread_suspend_all_np() and pthread_resume_all_np(). These functions have been added mostly for the native java port. Don't allow the uthread kernel pipe to use the same descriptors as stdio. Mostily submitted by Oswald Buddenhagen <ossi@kde.org>. Correct some minor style nits. Notes: svn path=/head/; revision=97204
* Undo namespace pollution by prefixing the globals pthread_guard_default andAlfred Perlstein2002-05-154-26/+29
| | | | | | | | | | | pthread_page_size. Fix a bunch line wrapping. Pointed out by: deischen Notes: svn path=/head/; revision=96636
* Don't use PAGE_SIZE in userland, instead use getpagesize(), this is toAlfred Perlstein2002-05-134-21/+36
| | | | | | | | | | allow running on other arches when the instructions are supported but the page size granularity is not. Glanced at by: peter Notes: svn path=/head/; revision=96501
* Use GCC's __attribute__ ((constructor)) mechanism to invoke the pthreadAlfred Perlstein2002-05-112-36/+8
| | | | | | | | | | startup code rather than a static C++ object since c++ seems to be broken. This doesn't seem to work for staticically linked program just yet, I'll give that some more work when I get a chance. Notes: svn path=/head/; revision=96401
* Make these functions cancellation points like they should be:Archie Cobbs2002-05-025-5/+66
| | | | | | | | | | | poll(2), readv(2), select(2), wait4(2), writev(2). PR: bin/37658 Reviewed by: deischen MFC after: 1 week Notes: svn path=/head/; revision=95948
* Make sure calls to pthread_cancel() do not take effect if the targetArchie Cobbs2002-05-021-2/+4
| | | | | | | | | | | thread is already exiting. PR: bin/37614 Reviewed by: deischen MFC after: 1 week Notes: svn path=/head/; revision=95947
* The GCC developers have made good on their threats against #pragma for 3.1.David E. O'Brien2002-04-153-3/+4
| | | | | | | | | Use __weak_reference in place of the #pragma. Submitted by: eischen Notes: svn path=/head/; revision=94808
* Return correct number of total bits set in all fd_set's.Jeroen Ruigrok van der Werven2002-04-091-9/+18
| | | | | | | | | | | | | | Change case of POLLNVAL as an error. Remove POLLHUP and POLLERR from one case, their place is most likely amongst read events. PR: 33723 Submitted by: Alexander Litvin <archer@whichever.org> Reviewed by: deischen [Provided a small change to the PR patch as well] MFC after: 4 weeks Notes: svn path=/head/; revision=94265
* Do not use __progname directly (except in [gs]etprogname(3)).Mark Murray2002-03-291-5/+7
| | | | | | | | | Also, make an internal _getprogname() that is used only inside libc. For libc, getprogname(3) is a weak symbol in case a function of the same name is defined in userland. Notes: svn path=/head/; revision=93399
* Add the ability to recognize old references to keys, and return NULLDaniel Eischen2002-03-196-36/+54
| | | | | | | | when old keys are referenced (after pthread_key_delete()) via pthread_getspecific(). Notes: svn path=/head/; revision=92730
* Fix the return code from pthread_rwlock_try[rw|rd]lock() functions;Brian S. Dean2002-03-151-2/+2
| | | | | | | | | these should return EBUSY when the calling thread would block. MFC after: 2 weeks Notes: svn path=/head/; revision=92360
* Properly clear the status of a join operation if the joining thread isDaniel Eischen2002-03-062-1/+4
| | | | | | | canceled or the joinee is detached. Notes: svn path=/head/; revision=91762
* Fix a bug where a short write to a non-blocking socket wouldJohn Birrell2002-02-221-1/+4
| | | | | | | | | | leave the descriptor locked, causing other threads to hang if they happened to access the socket. MFC after: 5 days Notes: svn path=/head/; revision=91045
* Don't rely on <sys/signal.h> to include <sys/ucontext.h>Daniel Eischen2002-02-171-0/+1
| | | | Notes: svn path=/head/; revision=90774
* Prevent dup2(2) from closing internal libc_r pipe descriptors.Maxim Konovalov2002-02-141-1/+2
| | | | | | | | | | PR: misc/28947 Reviewed by: jasone, ru Approved by: jasone, ru MFC after: 1 week Notes: svn path=/head/; revision=90657
* Correct a typo pthread_attr_setscope() function fails unconditionallyMaxim Konovalov2002-02-141-1/+1
| | | | | | | | | | | | due to. PR: misc/30699 Reviewed by: jasone, ru Approved by: jasone, ru MFC after: 1 week Notes: svn path=/head/; revision=90656
* This has been sitting in my local tree long enough. Remove the useDaniel Eischen2002-02-095-267/+166
| | | | | | | | | | | | | | | | | 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
* Silence a warning by initializing the return value. This wasn'tDaniel Eischen2002-02-091-2/+3
| | | | | | | | set in the case of a short write, and I think returning 0 for this is what was intended. Notes: svn path=/head/; revision=90430
* Undo the work-around for the sendfile bug where nbytes needed the hdr/trlDavid Greenman2002-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 Notes: svn path=/head/; revision=89676
* Use the real function address (instead of function address + 8) for theDaniel Eischen2001-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> Notes: svn path=/head/; revision=88401
* Fix the retrieval of USRSTACK via sysctl so that it works for 64-bitDaniel Eischen2001-12-181-2/+2
| | | | | | | | | archs. This should fix libc_r on alpha. Submitted by: Bernd Walter <ticso@cicely9.cicely.de> Notes: svn path=/head/; revision=88092
* When cancelling a thread while in a join operation, do not detachDaniel Eischen2001-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 Notes: svn path=/head/; revision=88015
* Pull the target thread of a join operation from the correct placeDaniel Eischen2001-12-151-3/+4
| | | | | | | when cancelling a thread. Notes: svn path=/head/; revision=87988
* Fix a number of subtle and evil bugs in the libc_r wrapping of sendfile(2).Alfred Perlstein2001-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 Notes: svn path=/head/; revision=87720
* Prevent infinite loop, when kevent(2) is called wihout eventlist (i.e.Maxim Sobolev2001-12-081-1/+1
| | | | | | | eventlist == NULL or nevents == 0). Notes: svn path=/head/; revision=87516
* Fix pthread_join so that it works if the target thread exits whileDaniel Eischen2001-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 Notes: svn path=/head/; revision=86499
* Make libc_r check the kern.usrstack sysctl instead of using internalPeter Wemm2001-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. Notes: svn path=/head/; revision=85567
* Style: sort __sys_foo() prototypes, tabs -> spaces, etc.Ruslan Ermilov2001-10-261-78/+78
| | | | Notes: svn path=/head/; revision=85559
* Removed:Ruslan Ermilov2001-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 Notes: svn path=/head/; revision=85557
* In the words of the submitter:Daniel Eischen2001-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> Notes: svn path=/head/; revision=85290