diff options
| author | nathanw <nathanw@NetBSD.org> | 2003-01-27 20:57:41 +0000 |
|---|---|---|
| committer | nathanw <nathanw@NetBSD.org> | 2003-01-27 20:57:41 +0000 |
| commit | 05a755440a040dc996846ec84d883d328f8a4db0 (patch) | |
| tree | 63094487f22e549945b8ebbfa1bed5f89a4c09e4 /lib/libpthread | |
| parent | 161423ddcae13bfac45c7fb5dbc33d52dbc16711 (diff) | |
Add cancellation stubs for accept() and connect().
Diffstat (limited to 'lib/libpthread')
| -rw-r--r-- | lib/libpthread/pthread_cancelstub.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/lib/libpthread/pthread_cancelstub.c b/lib/libpthread/pthread_cancelstub.c index b829127da83..e41e262380c 100644 --- a/lib/libpthread/pthread_cancelstub.c +++ b/lib/libpthread/pthread_cancelstub.c @@ -1,4 +1,4 @@ -/* $NetBSD: pthread_cancelstub.c,v 1.2 2003/01/18 10:34:15 thorpej Exp $ */ +/* $NetBSD: pthread_cancelstub.c,v 1.3 2003/01/27 20:57:41 nathanw Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -56,11 +56,14 @@ int pthread__cancel_stub_binder; #define __LIBC12_SOURCE__ #include <signal.h> #include <sys/mman.h> +#include <sys/socket.h> #include "pthread.h" #include "pthread_int.h" +int _sys_accept(int, struct sockaddr *, socklen_t *); int _sys_close(int); +int _sys_connect(int, const struct sockaddr *, socklen_t); int _sys_fcntl(int, int, ...); int _sys_fsync(int); ssize_t _sys_msgrcv(int, void *, size_t, long, int); @@ -80,6 +83,20 @@ ssize_t _sys_writev(int, const struct iovec *, int); int +accept(int s, struct sockaddr *addr, socklen_t *addrlen) +{ + int retval; + pthread_t self; + + self = pthread__self(); + pthread__testcancel(self); + retval = _sys_accept(s, addr, addrlen); + pthread__testcancel(self); + + return retval; +} + +int close(int d) { int retval; @@ -94,6 +111,20 @@ close(int d) } int +connect(int s, const struct sockaddr *addr, socklen_t namelen) +{ + int retval; + pthread_t self; + + self = pthread__self(); + pthread__testcancel(self); + retval = _sys_connect(s, addr, namelen); + pthread__testcancel(self); + + return retval; +} + +int fcntl(int fd, int cmd, ...) { int retval; |
