thr_fcntl.c (50476) | thr_fcntl.c (53812) |
---|---|
1/* 2 * Copyright (c) 1995-1998 John Birrell <jb@cimlogic.com.au> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 15 unchanged lines hidden (view full) --- 24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 * | 1/* 2 * Copyright (c) 1995-1998 John Birrell <jb@cimlogic.com.au> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 15 unchanged lines hidden (view full) --- 24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 * |
32 * $FreeBSD: head/lib/libkse/thread/thr_fcntl.c 50476 1999-08-28 00:22:10Z peter $ | 32 * $FreeBSD: head/lib/libkse/thread/thr_fcntl.c 53812 1999-11-28 05:38:13Z alfred $ |
33 */ 34#include <stdarg.h> 35#include <unistd.h> 36#include <fcntl.h> 37#ifdef _THREAD_SAFE 38#include <pthread.h> 39#include "pthread_private.h" 40 41int 42fcntl(int fd, int cmd,...) 43{ 44 int flags = 0; 45 int nonblock; 46 int oldfd; 47 int ret; 48 va_list ap; 49 | 33 */ 34#include <stdarg.h> 35#include <unistd.h> 36#include <fcntl.h> 37#ifdef _THREAD_SAFE 38#include <pthread.h> 39#include "pthread_private.h" 40 41int 42fcntl(int fd, int cmd,...) 43{ 44 int flags = 0; 45 int nonblock; 46 int oldfd; 47 int ret; 48 va_list ap; 49 |
50 _thread_enter_cancellation_point(); 51 |
|
50 /* Lock the file descriptor: */ 51 if ((ret = _FD_LOCK(fd, FD_RDWR, NULL)) == 0) { 52 /* Initialise the variable argument list: */ 53 va_start(ap, cmd); 54 55 /* Process according to file control command type: */ 56 switch (cmd) { 57 /* Duplicate a file descriptor: */ --- 72 unchanged lines hidden (view full) --- 130 } 131 132 /* Free variable arguments: */ 133 va_end(ap); 134 135 /* Unlock the file descriptor: */ 136 _FD_UNLOCK(fd, FD_RDWR); 137 } | 52 /* Lock the file descriptor: */ 53 if ((ret = _FD_LOCK(fd, FD_RDWR, NULL)) == 0) { 54 /* Initialise the variable argument list: */ 55 va_start(ap, cmd); 56 57 /* Process according to file control command type: */ 58 switch (cmd) { 59 /* Duplicate a file descriptor: */ --- 72 unchanged lines hidden (view full) --- 132 } 133 134 /* Free variable arguments: */ 135 va_end(ap); 136 137 /* Unlock the file descriptor: */ 138 _FD_UNLOCK(fd, FD_RDWR); 139 } |
140 _thread_leave_cancellation_point(); |
|
138 139 /* Return the completion status: */ 140 return (ret); 141} 142#endif | 141 142 /* Return the completion status: */ 143 return (ret); 144} 145#endif |