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
940 return di;940 return di;
941}941}
942 942
943int943static int
944initscreenimage(void)944initscreenimage(void)
945{945{
946 if(screenimage != nil)946 if(screenimage != nil)
@@ -956,8 +956,9 @@ initscreenimage(void) · 9 unmodified lines
956}956}
957 957
958void958void
959_deletescreenimage(void)959deletescreenimage(void)
960{960{
961 dlock();
961 if(screenimage){962 if(screenimage){
962 /* will be freed via screendimage; disable */963 /* will be freed via screendimage; disable */
963 screenimage->clipr = ZR;964 screenimage->clipr = ZR;
@@ -967,13 +968,6 @@ _deletescreenimage(void) · 3 unmodified lines
967 drawfreedimage(screendimage);968 drawfreedimage(screendimage);
968 screendimage = nil;969 screendimage = nil;
969 }970 }
970}
971
972void
973deletescreenimage(void)
974{
975 dlock();
976 _deletescreenimage();
977 dunlock();971 dunlock();
978}972}
979 973
@@ -1002,6 +996,8 @@ drawattach(char *spec) · 22 unmodified lines
1002static Walkqid*996static Walkqid*
1003drawwalk(Chan *c, Chan *nc, char **name, int nname)997drawwalk(Chan *c, Chan *nc, char **name, int nname)
1004{998{
999 if(screenimage == nil)
1000 error("no frame buffer");
1005 return devwalk(c, nc, name, nname, 0, 0, drawgen);1001 return devwalk(c, nc, name, nname, 0, 0, drawgen);
1006}1002}
1007 1003
kern/term.c+5−12
@@ -9,8 +9,6 @@ · 8 unmodified lines
9#include "screen.h"9#include "screen.h"
10 10
11extern Memimage *gscreen;11extern Memimage *gscreen;
12int initscreenimage(void);
13void _deletescreenimage(void);
14 12
15static Memsubfont *memdefont;13static Memsubfont *memdefont;
16static Lock screenlock;14static Lock screenlock;
@@ -114,27 +112,22 @@ resizeproc(void *arg) · 97 unmodified lines
114 continue;112 continue;
115 }113 }
116 gscreen->clipr = resize.r;114 gscreen->clipr = resize.r;
117 _deletescreenimage();
118 initscreenimage();
119 qunlock(&drawlock);115 qunlock(&drawlock);
120 116
121 screenwin();117 screenwin();
118 deletescreenimage();
119 resetscreenimage();
120 osmsleep(1000);
122 }121 }
123}122}
124 123
125void124void
126_screenresize(Rectangle r)125screenresize(Rectangle r)
127{126{
127 qlock(&drawlock);
128 resize.r = r;128 resize.r = r;
129 resize.f = 1;129 resize.f = 1;
130 wakeup(&resize.z);130 wakeup(&resize.z);
131}
132
133void
134screenresize(Rectangle r)
135{
136 qlock(&drawlock);
137 _screenresize(r);
138 qunlock(&drawlock);131 qunlock(&drawlock);
139}132}
140 133

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