summaryrefslogtreecommitdiffstats
path: root/lib/libpthread/thread/thr_writev.c
Commit message (Collapse)AuthorAgeFilesLines
* Use __strong_reference() instead of __weak_reference() to assure that thejasone2000-01-291-1/+1
| | | | weak symbols of the same name are not used.
* Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(),jasone2000-01-271-2/+2
| | | | | | | | | | | | | | | | | just use _foo() <-- foo(). In the case of a libpthread that doesn't do call conversion (such as linuxthreads and our upcoming libpthread), this is adequate. In the case of libc_r, we still need three names, which are now _thread_sys_foo() <-- _foo() <-- foo(). Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(), nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo(). Remove all internal libc usage of: creat(), pause(), sleep(), system(), tcdrain(), wait(), and waitpid(). Make thread cancellation fully POSIX-compliant. Suggested by: deischen
* Track libc's three-tier symbol naming. libc_r must currently implementjasone2000-01-121-1/+3
| | | | | the _libc_*() entry points and add *() weak aliases. This will all change for the better when libc_r becomes libpthread.
* Avoid an infinite loop if the last element of the iov array passed tojasone1999-12-161-1/+13
| | | | | | writev() has an iov_len of 0. PR: bin/8281
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Add RCS IDs to those files without them.deischen1999-08-051-2/+2
| | | | | | | Fix copyrights (s/REGENTS/AUTHOR). Suggested by: tg Approved by: jb
* If a short write, only loop if no error.jb1998-06-141-2/+2
|
* Check the access mode in the flags before waiting on a read or a writejb1998-06-101-1/+13
| | | | | that might never be possible if the file was not opened in the corrent mode. This prevents a hang for bad programs. Why do people code like that?
* Implement compile time debug support instead of tracking file name andjb1998-06-091-4/+5
| | | | | | | line number every time a file descriptor is locked. This looks like a big change but it isn't. It should reduce the size of libc_r and make it run slightly faster.
* Make a copy of the caller's iovec array, mallocing if necessary,jb1998-05-271-14/+62
| | | | | and modify that if the writev() syscall does not completely write all bytes in a single call.
* When doing a blocking write, keep looping until all the bytes arejb1998-05-251-10/+58
| | | | | | | written without returning to the caller. This only occurs on pipes where either the number of bytes written is greater than the pipe buffer or if there is insufficient space in the pipe buffer because the reader is reading slower than the writer is writing.
* Change signal model to match POSIX (i.e. one set of signal handlersjb1998-04-291-4/+3
| | | | | | | | | | | | | | | | | | | | for the process, not a separate set for each thread). By default, the process now only has signal handlers installed for SIGVTALRM, SIGINFO and SIGCHLD. The thread kernel signal handler is installed for other signals on demand. This means that SIG_IGN and SIG_DFL processing is now left to the kernel, not the thread kernel. Change the signal dispatch to no longer use a signal thread, and call the signal handler using the stack of the thread that has the signal pending. Change the atomic lock method to use test-and-set asm code with a yield if blocked. This introduces separate locks for each type of object instead of blocking signals to prevent a context switch. It was this blocking of signals that caused the performance degradation the people have noted. This is a *big* change!
* Fixes from Jeremy Allison and Terry Lambert for pthreads:julian1998-02-131-3/+3
| | | | | | | | | | | | | | | | | | | | | specifically: uthread_accept.c: Fix for inherited socket not getting correct entry in pthread flags. uthread_create.c: Fix to allow pthread_t pointer return to be null if caller doesn't care about return. uthread_fd.c: Fix for return codes to be placed into correct errno. uthread_init.c: Changes to make gcc-2.8 thread aware for exception stack frames (WARNING: This is #ifdef'ed out by default and is different from the Cygnus egcs fix). uthread_ioctl.c: Fix for blocking/non-blocking ioctl. uthread_kern.c: Signal handling fixes (only one case left to fix, that of an externally sent SIGSEGV and friends - a fairly unusual case). uthread_write.c: Fix for lock of fd - ask for write lock, not read/write. uthread_writev.c: Fix for lock of fd - ask for write lock, not read/write. Pthreads now works well enough to run the LDAP and ACAPD(with the gcc 2.8 fix) sample implementations.
* Add parentheses to make blocking mode work.jb1997-04-011-1/+3
|
* Submitted by: John Birrelljulian1997-02-051-15/+22
| | | | uthreads update from the author.
* Reviewed by: julianjulian1996-01-221-0/+74
Submitted by: john birrel One version of the pthreads library another will follow with differnt actions under some cases.. not QUITE complete
OpenPOWER on IntegriCloud