Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys
Module Name: src
Committed By: ad
Date: Sat Apr 4 10:12:52 UTC 2009
Modified Files:
src/sys/arch/xen/xen: xenevt.c
src/sys/compat/svr4: svr4_net.c
src/sys/compat/svr4_32: svr4_32_net.c
src/sys/dev/dmover: dmover_io.c
src/sys/dev/putter: putter.c
src/sys/kern: kern_descrip.c kern_drvctl.c kern_event.c sys_mqueue.c
sys_pipe.c sys_socket.c uipc_socket.c uipc_syscalls.c vfs_vnops.c
src/sys/net: bpf.c if_tap.c
src/sys/opencrypto: cryptodev.c
src/sys/sys: file.h socketvar.h
Log Message:
Add fileops::fo_drain(), to be called from fd_close() when there is more
than one active reference to a file descriptor. It should dislodge threads
sleeping while holding a reference to the descriptor. Implemented only for
sockets but should be extended to pipes, fifos, etc.
Fixes the case of a multithreaded process doing something like the
following, which would have hung until the process got a signal.
thr0 accept(fd, ...)
thr1 close(fd)
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/sys/arch/xen/xen/xenevt.c
cvs rdiff -u -r1.55 -r1.56 src/sys/compat/svr4/svr4_net.c
cvs rdiff -u -r1.18 -r1.19 src/sys/compat/svr4_32/svr4_32_net.c
cvs rdiff -u -r1.31 -r1.32 src/sys/dev/dmover/dmover_io.c
cvs rdiff -u -r1.20 -r1.21 src/sys/dev/putter/putter.c
cvs rdiff -u -r1.189 -r1.190 src/sys/kern/kern_descrip.c
cvs rdiff -u -r1.22 -r1.23 src/sys/kern/kern_drvctl.c
cvs rdiff -u -r1.63 -r1.64 src/sys/kern/kern_event.c
cvs rdiff -u -r1.13 -r1.14 src/sys/kern/sys_mqueue.c
cvs rdiff -u -r1.108 -r1.109 src/sys/kern/sys_pipe.c
cvs rdiff -u -r1.58 -r1.59 src/sys/kern/sys_socket.c
cvs rdiff -u -r1.187 -r1.188 src/sys/kern/uipc_socket.c
cvs rdiff -u -r1.135 -r1.136 src/sys/kern/uipc_syscalls.c
cvs rdiff -u -r1.163 -r1.164 src/sys/kern/vfs_vnops.c
cvs rdiff -u -r1.143 -r1.144 src/sys/net/bpf.c
cvs rdiff -u -r1.54 -r1.55 src/sys/net/if_tap.c
cvs rdiff -u -r1.46 -r1.47 src/sys/opencrypto/cryptodev.c
cvs rdiff -u -r1.66 -r1.67 src/sys/sys/file.h
cvs rdiff -u -r1.118 -r1.119 src/sys/sys/socketvar.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index