freebsd-skq/sys
John Polstra 81bda851db Make bpf's read timeout feature work more correctly with
select/poll, and therefore with pthreads.  I doubt there is any way
to make this 100% semantically identical to the way it behaves in
unthreaded programs with blocking reads, but the solution here
should do the right thing for all reasonable usage patterns.

The basic idea is to schedule a callout for the read timeout when a
select/poll is done.  When the callout fires, it ends the select if
it is still in progress, or marks the state as "timed out" if the
select has already ended for some other reason.  Additional logic in
bpfread then does the right thing in the case where the timeout has
fired.

Note, I co-opted the bd_state member of the bpf_d structure.  It has
been present in the structure since the initial import of 4.4-lite,
but as far as I can tell it has never been used.

PR:		kern/22063 and bin/31649
MFC after:	3 days
2001-12-14 22:17:54 +00:00
..
alpha Enable UFS_DIRHASH in the GENERIC kernel. 2001-12-14 16:27:11 +00:00
amd64 Device Polling code for -current. 2001-12-14 17:56:12 +00:00
arm We need machine/{signal,ucontext}.h to build a cross GCC compiler. 2001-12-09 19:39:49 +00:00
boot mdoc(7) police: remove hard sentence break which I didn't 2001-12-14 09:06:11 +00:00
cam Remove PAO3 dependent part where I missed to remove at last commit. 2001-12-10 02:07:34 +00:00
coda Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
compat Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
conf Device Polling code for -current. 2001-12-14 17:56:12 +00:00
contrib Fix initialisation of struct nat entry, to solve a panic that occurs 2001-12-05 10:46:24 +00:00
crypto fixed the cast128 calculation with a short cipher key length. 2001-11-27 14:11:47 +00:00
ddb Implement a "kill" DDB command which is an interface to psignal() that 2001-11-27 19:56:28 +00:00
dev Disabled input hardware checksum due to it being calculated incorrected 2001-12-14 22:04:58 +00:00
fs Add module dependency on libmchain. 2001-12-13 13:08:34 +00:00
geom Return EOPNOTSUPP for unknown module events. 2001-11-17 00:46:08 +00:00
gnu Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
i4b Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
i386 Device Polling code for -current. 2001-12-14 17:56:12 +00:00
ia64 Enable UFS_DIRHASH in the GENERIC kernel. 2001-12-14 16:27:11 +00:00
isa Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
isofs/cd9660 Fix mounting root from a ISO9660 filesystem on a SCSI CDROM. 2001-11-27 03:55:43 +00:00
kern When removing kqueue descriptors from the descriptor table during a fork, 2001-12-14 19:02:57 +00:00
libkern rcsid[]->__FBSDID 2001-11-07 19:55:16 +00:00
modules Connect libiconv to the build. 2001-12-12 10:11:16 +00:00
net Make bpf's read timeout feature work more correctly with 2001-12-14 22:17:54 +00:00
netatalk Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netatm Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netgraph Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
netinet o Add IPOPT_ESO for the 'Extended Security' IP option (RFC1108) 2001-12-14 19:37:32 +00:00
netinet6 Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
netipx Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netkey Newer SA is prefered for a out-bound packet than old one 2001-12-05 05:40:49 +00:00
netnatm Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netncp Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
netns Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netsmb Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
nfs Unwind some more macros. NFSMADV() was kinda silly since it was right 2001-09-28 04:37:08 +00:00
nfsclient This fixes a large number of bugs in our NFS client side code. A recent 2001-12-14 01:16:57 +00:00
nfsserver When VOP_SYMLINK fails, the value of *vpp is junk, so we must NULL 2001-12-04 16:53:42 +00:00
pc98 Enable UFS_DIRHASH in the GENERIC kernel. 2001-12-14 16:27:11 +00:00
pccard Better error message when cardtype is not recognized 2001-11-13 06:46:19 +00:00
pci Device Polling code for -current. 2001-12-14 17:56:12 +00:00
posix4 KSE Milestone 2 2001-09-12 08:38:13 +00:00
powerpc Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
rpc Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and 2001-03-19 12:50:13 +00:00
security/lomac Split out NAI Labs license and BSD license to prevent the accidental 2001-12-03 00:21:18 +00:00
sparc64 Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
svr4
sys Let M_LEADINGSPACE write into non-shared mbufs. 2001-12-14 17:31:58 +00:00
tools Move from using PCCARD_ symbols gereated from this file to using PCMCIA_ 2001-11-11 20:15:06 +00:00
ufs Minimize the time necessary to suspend operations on a filesystem 2001-12-14 00:15:06 +00:00
vm This fixes a large number of bugs in our NFS client side code. A recent 2001-12-14 01:16:57 +00:00
Makefile