History

Revert "tidy drawlock use"

This is a bug in the upstream 9front code, a fix is in the works but best not to diverge.

Jacob Moody committed 4 years ago

Commit 60e52ed1 parent 5f606aa2 files · +10 −21Browse files

Unified · Split

2 files
  1. kern/devdraw.c +5 −9
  2. kern/term.c +5 −12
kern/devdraw.c+5−9
@@ -940,7 +940,7 @@ makescreenimage(void) · 939 unmodified lines
940940 return di;
941941 }
942942
943−int
943+static int
944944 initscreenimage(void)
945945 {
946946 if(screenimage != nil)
@@ -956,8 +956,9 @@ initscreenimage(void) · 9 unmodified lines
956956 }
957957
958958 void
959−_deletescreenimage(void)
959+deletescreenimage(void)
960960 {
961+ dlock();
961962 if(screenimage){
962963 /* will be freed via screendimage; disable */
963964 screenimage->clipr = ZR;
@@ -967,13 +968,6 @@ _deletescreenimage(void) · 3 unmodified lines
967968 drawfreedimage(screendimage);
968969 screendimage = nil;
969970 }
970−}
971−
972−void
973−deletescreenimage(void)
974−{
975− dlock();
976− _deletescreenimage();
977971 dunlock();
978972 }
979973
@@ -1002,6 +996,8 @@ drawattach(char *spec) · 22 unmodified lines
1002996 static Walkqid*
1003997 drawwalk(Chan *c, Chan *nc, char **name, int nname)
1004998 {
999+ if(screenimage == nil)
1000+ error("no frame buffer");
10051001 return devwalk(c, nc, name, nname, 0, 0, drawgen);
10061002 }
10071003
kern/term.c+5−12
@@ -9,8 +9,6 @@ · 8 unmodified lines
99 #include "screen.h"
1010
1111 extern Memimage *gscreen;
12−int initscreenimage(void);
13−void _deletescreenimage(void);
1412
1513 static Memsubfont *memdefont;
1614 static Lock screenlock;
@@ -114,27 +112,22 @@ resizeproc(void *arg) · 97 unmodified lines
114112 continue;
115113 }
116114 gscreen->clipr = resize.r;
117− _deletescreenimage();
118− initscreenimage();
119115 qunlock(&drawlock);
120116
121117 screenwin();
118+ deletescreenimage();
119+ resetscreenimage();
120+ osmsleep(1000);
122121 }
123122 }
124123
125124 void
126−_screenresize(Rectangle r)
125+screenresize(Rectangle r)
127126 {
127+ qlock(&drawlock);
128128 resize.r = r;
129129 resize.f = 1;
130130 wakeup(&resize.z);
131−}
132−
133−void
134−screenresize(Rectangle r)
135−{
136− qlock(&drawlock);
137− _screenresize(r);
138131 qunlock(&drawlock);
139132 }
140133

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t