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