Official MINIX sources - Automatically replicated from gerrit.minix3.org
Go to file
David van Moolenbroek 491d647a3b VFS: support for suspending close(2) for sockets
This change effectively adds the VFS side of support for the SO_LINGER
socket option, by allowing file descriptor close operations to be
suspended (and later resumed) by socket drivers.  Currently, support
is limited to the close(2) system call--in all other cases where file
descriptors are closed (dup2, close-on-exec, process exit..), the
close operation still completes instantly.  As a general policy, the
close(2) return value will always indicate that the file descriptor
has been closed: either 0, or -1 with errno set to EINPROGRESS.  The
latter error may be thrown only when a suspended close is interrupted
by a signal.

As necessary for UDS, this change also introduces a closenb(2) system
call extension, allowing the caller to bypass blocking SO_LINGER close
behavior.  This extension allows UDS to avoid blocking on closing the
last reference to an in-flight file descriptor, in an atomic fashion.
The extension is currently part of libsys, but there is no reason why
userland would not be allowed to make this call, so it is deliberately
not protected from use by userland.

Change-Id: Iec77d6665232110346180017fc1300b1614910b7
2017-03-09 23:39:50 +00:00
bin Import NetBSD ps(1) 2016-01-13 20:32:52 +01:00
common w(1): switch to libkvm 2016-01-13 20:32:50 +01:00
crypto etc: synchronize master.password, group to NetBSD 2017-02-18 21:37:24 +00:00
dist/pf/sbin/pfctl Import a subset of PF distribution files 2016-06-18 12:20:46 +00:00
distrib Import NetBSD getent(1) 2017-03-09 20:04:33 +01:00
docs Initial import of NetBSD rc system 2017-02-23 14:08:39 +00:00
etc etc: replace one more "service" with minix-service 2017-02-26 00:03:38 +00:00
external etc: synchronize master.password, group to NetBSD 2017-02-18 21:37:24 +00:00
games Fix ARM noassert builds -g/-O{s/0/1/2/3} 2016-01-24 18:56:38 +01:00
gnu Fix the process for GNU tools on MINIX 2016-11-30 08:42:36 +01:00
include Start using sysctl(3) throughout userland 2016-01-13 20:32:45 +01:00
lib introducing libacpi 2016-10-29 17:08:10 +02:00
libexec ld.elf_so: sysctl support uncommented 2016-01-16 14:04:24 +01:00
minix VFS: support for suspending close(2) for sockets 2017-03-09 23:39:50 +00:00
releasetools fixed git checkout and updated latest known changeset working for grub 2016-10-18 14:22:28 +02:00
sbin Import NetBSD rcorder(8) 2017-02-22 17:17:28 +00:00
share share: also install other existing manpages 2017-02-23 14:09:01 +00:00
sys libc: remove MINIX3 restrictions from getnameinfo(3) 2016-10-24 12:11:07 +00:00
tests tests: add most kyua kernel tests 2016-01-16 14:04:25 +01:00
tools Improve the process for GNU tools 2016-09-01 21:16:13 +02:00
usr.bin Import NetBSD getent(1) 2017-03-09 20:04:33 +01:00
usr.sbin Import NetBSD service(8) 2017-02-23 14:08:56 +00:00
.gitignore Initial import of NetBSD rc system 2017-02-23 14:08:39 +00:00
.gitreview build:update 'git review' config to match gerrit.minix3.org 2014-07-28 17:05:15 +02:00
build.sh NetBSD re-synchronization of the source tree 2016-01-13 20:32:14 +01:00
LICENSE Fix parameter parsing in cut 2010-01-21 10:16:05 +00:00
Makefile NetBSD re-synchronization of the source tree 2016-01-13 20:32:14 +01:00
Makefile.inc Synchronize on NetBSD-CVS (2013/12/1 12:00:00 UTC) 2014-07-28 17:05:06 +02:00