diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-04-01 10:22:33 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-04-01 10:22:33 +0000 |
commit | fabfb1a1ee52bc5ff248e708de5e7dc56cd6a170 (patch) | |
tree | 2d471f2e6ebf7757d28a889cec5ec987fdb4e00a /winsup/cygwin/syscalls.cc | |
parent | 636c94d8539476b691bdfff748282027a970725b (diff) | |
download | cygnal-fabfb1a1ee52bc5ff248e708de5e7dc56cd6a170.tar.gz cygnal-fabfb1a1ee52bc5ff248e708de5e7dc56cd6a170.tar.bz2 cygnal-fabfb1a1ee52bc5ff248e708de5e7dc56cd6a170.zip |
Throughout, call fcntl64 instead of fcntl or fcntl_worker.
* fcntl.cc (fcntl_worker): Remove.
(fcntl64): Add fault handler. Move fcntl_worker stuff here. Add case
for locking and call fhandler's lock method directly. Make sure that
F_FLOCK flag isn't set in lock call.
(_fcntl): Add fault handler.
* fhandler.cc (fhandler_base::fcntl): Drop lock cases.
* flock.cc (flock): Add fault handler. Simplify code. Call fhandlers
lock method directly instead of fcntl_worker. Add debug output.
(lockf): Add fault handler. Call fhandlers lock method directly
instead of fcntl_worker. Add debug output.
* winsup.h (fcntl_worker): Drop declaration.
(fcntl64): Declare.
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index f7122dcb9..06c74a209 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -2940,12 +2940,12 @@ locked_append (int fd, const void * buf, size_t size) do if ((lock_buffer.l_start = lseek64 (fd, 0, SEEK_END)) != (_off64_t) -1 - && fcntl_worker (fd, F_SETLKW, &lock_buffer) != -1) + && fcntl64 (fd, F_SETLKW, &lock_buffer) != -1) { if (lseek64 (fd, 0, SEEK_END) != (_off64_t) -1) write (fd, buf, size); lock_buffer.l_type = F_UNLCK; - fcntl_worker (fd, F_SETLK, &lock_buffer); + fcntl64 (fd, F_SETLK, &lock_buffer); break; } while (count++ < 1000 @@ -3452,7 +3452,7 @@ popen (const char *command, const char *in_type) } FILE *fp = fdopen (fd, in_type); - fcntl (fd, F_SETFD, fcntl (fd, F_GETFD, 0) | FD_CLOEXEC); + fcntl64 (fd, F_SETFD, fcntl64 (fd, F_GETFD, 0) | FD_CLOEXEC); if (!fp) goto err; @@ -3467,11 +3467,11 @@ popen (const char *command, const char *in_type) { lock_process now; - int state = fcntl (stdwhat, F_GETFD, 0); - fcntl (stdwhat, F_SETFD, state | FD_CLOEXEC); + int state = fcntl64 (stdwhat, F_GETFD, 0); + fcntl64 (stdwhat, F_SETFD, state | FD_CLOEXEC); pid = spawn_guts ("/bin/sh", argv, cur_environ (), _P_NOWAIT, __stdin, __stdout); - fcntl (stdwhat, F_SETFD, state); + fcntl64 (stdwhat, F_SETFD, state); } if (pid < 0) |