plan9fox/sys/src/libdraw
cinap_lenrek 064ea89caa libdraw: avoid deadlock for mouse ioproc sending on resizec
a deadlock has been observed with samterm (thanks burnzez),
that shows the mouse ioproc being stuck in sending on the
resize channel, while the mouse consumer is stuck in a
readmouse() loop wanting a rectangle to be drawn by the
user:

recv(v=0x42df50)+0x28 /sys/src/libthread/channel.c:321
readmouse(mc=0x42df50)+0x54 /sys/src/libdraw/mouse.c:34
getrect(.ret=0x41bce0,but=0x4,mc=0x42df50)+0x62 /sys/src/libdraw/getrect.c:49
	r=0x41bc70
	rc=0x41bc70
getr(rp=0x41bce0)+0x24 /sys/src/cmd/samterm/main.c:244
	p=0x6b000004f6
	r=0x2
sweeptext(new=0x0,tag=0x2d)+0x12 /sys/src/cmd/samterm/menu.c:208
	r=0x2
	t=0x42df50
inmesg(type=0x2,count=0x2)+0x1ab /sys/src/cmd/samterm/mesg.c:136
	m=0x10000002d
	l=0x2d00001b00
	i=0x43829000000001
	t=0x438290
	lp=0x42e050
rcv()+0x7a /sys/src/cmd/samterm/mesg.c:77
threadmain(argv=0x7ffffeffef90)+0x173 /sys/src/cmd/samterm/main.c:63

so avoid blocking in the mouse ioproc by using nbsend()
instead of send() for writing to the resize channel.
2018-11-18 03:37:04 +01:00
..
alloc.c rio, libdraw: experimental removal of redundant flushimage() calls for roundtrip latency reduction 2016-03-08 16:45:29 +01:00
allocimagemix.c
arith.c libdraw: remove unused static log2[] array 2016-02-28 01:38:29 +01:00
badrect.c
bezier.c
border.c libdraw: add missing borderop() (thanks aiju) 2014-07-21 18:10:58 +02:00
buildfont.c libdraw: font->display->defaultsubfont vs. display->defaultsubfont, dead code, malloc erros 2015-03-02 11:01:12 +01:00
bytesperline.c
chan.c
cloadimage.c
computil.c
creadimage.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
debug.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
defont.c
draw.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
drawrepl.c
eenter.c libdraw: fix broken eenter() 2015-01-18 10:34:05 +01:00
egetrect.c
ellipse.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
emenuhit.c
enter.c libdraw: don't redraw input box in enter/eenter when mouse is moved outside the rectangle 2015-01-09 15:41:00 -08:00
event.c libdraw: accept unsigned msec timestamp in /dev/mouse 2018-07-23 19:25:28 +02:00
fmt.c
font.c libdraw: avoid BPSHORT()/BPLONG() expansion, cleanup loadchar(),cachechars() 2016-04-13 00:34:48 +02:00
freesubfont.c
getdefont.c
getrect.c
getsubfont.c libdraw: cleanup getsubfont() 2015-02-24 03:25:26 +01:00
icossin.c
icossin2.c
init.c libdraw: cannot happen 2018-11-08 16:56:34 +01:00
keyboard.c libdraw: don't loop forever when getting eof on /dev/cons in keyboard ioproc 2015-05-19 20:04:47 +02:00
line.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
loadimage.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
makefile
menuhit.c
mkfile
mkfont.c libdraw: font->display->defaultsubfont vs. display->defaultsubfont, dead code, malloc erros 2015-03-02 11:01:12 +01:00
mouse.c libdraw: avoid deadlock for mouse ioproc sending on resizec 2018-11-18 03:37:04 +01:00
newwindow.c fix fuckup 2015-08-25 09:35:10 +00:00
openfont.c libdraw: have openfont() set error string 2016-03-19 17:47:25 -04:00
poly.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
readcolmap.c
readimage.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
readsubfont.c libdraw: use readn() to read headers and Fontchar array 2015-03-01 05:39:45 +01:00
rectclip.c
replclipr.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
rgb.c
scroll.c
string.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
stringbg.c
stringsubfont.c
stringwidth.c libdraw: fix zero stringwidth() bug 2014-03-10 06:41:45 +01:00
subfont.c libdraw: font->display->defaultsubfont vs. display->defaultsubfont, dead code, malloc erros 2015-03-02 11:01:12 +01:00
subfontcache.c
subfontname.c
test.c
unloadimage.c libdraw: consistent use of nil for pointers, error handling 2015-06-09 01:42:59 +02:00
window.c rio, libdraw: experimental removal of redundant flushimage() calls for roundtrip latency reduction 2016-03-08 16:45:29 +01:00
writecolmap.c
writeimage.c
writesubfont.c