plan9fox/sys/src/ape/lib
cinap_lenrek 631aef280d ape: fix thread race with close() and select()
in ape close(), do the real filedescriptor _CLOSE() *after* we cleared
the _fdinfo[] slot because once closed, we dont own the slot anymore and
another process doing open() can trash the slot. make sure open() retuns
fd < OPEN_MAX.

double check in _startbuf() holding mux->lock if the fd is already buffered
preveting running double copyprocs on a fd.

dont zero the mux->rwant/ewant bitmaps at the end of select() as we do not
hold the mix->lock.

in _closebuf() kill copyproc while holding the mux->lock to make sure the
copyproc isnt holding it at the time it is killed. run kill() multiple times
to make sure the proc is gone.
2013-03-11 01:16:34 +01:00
..
9 Import sources from 2011-03-30 iso image - lib 2011-03-30 19:35:09 +03:00
ap ape: fix thread race with close() and select() 2013-03-11 01:16:34 +01:00
bsd ape: fix getsockname() byte swaped ports (by yarikos) 2013-01-09 06:08:29 +01:00
bz2 add zlib, bzlib and openssl ape ports 2011-05-03 09:56:35 +00:00
draw Import sources from 2011-03-30 iso image - lib 2011-03-30 19:35:09 +03:00
fmt fix utf and rune handling in preparation for 32bit runes 2012-12-31 21:09:46 +01:00
l Import sources from 2011-03-30 iso image - lib 2011-03-30 19:35:09 +03:00
net Import sources from 2011-03-30 iso image - lib 2011-03-30 19:35:09 +03:00
openssl import updated compilers from sources 2012-07-30 19:11:16 +02:00
regexp Import sources from 2011-03-30 iso image - lib 2011-03-30 19:35:09 +03:00
utf fix utf and rune handling in preparation for 32bit runes 2012-12-31 21:09:46 +01:00
v ape: add PASS_MAX constant for getpass() to limits.h (from patch/ape-pass_max) 2013-02-28 19:21:03 +01:00
z add zlib, bzlib and openssl ape ports 2011-05-03 09:56:35 +00:00
mkfile build ape/z before everything else (openssl) 2011-05-03 19:05:58 +00:00