shithub: fork

Download patch

ref: 2d74cd0482e2c5e7244b291ee20f190647a08a28
parent: 1f01f248d5c8437c45064ca3110b292e9022dc1f
author: qwx <qwx@sciops.net>
date: Wed Jan 7 05:35:34 EST 2026

page: sync with 9front

--- a/sys/src/cmd/page.c
+++ b/sys/src/cmd/page.c
@@ -947,11 +947,9 @@
 		if(p->image == nil)
 			p->open = nil;
 		else {
-			lockdisplay(display);
 			if(invert)
 				invertimage(p->image);
 			imemsize += imagesize(p->image);
-			unlockdisplay(display);
 		}
 	}
 }
@@ -965,10 +963,8 @@
 
 	if(p->open == nil || p->image == nil)
 		return;
-	lockdisplay(display);
 	imemsize -= imagesize(p->image);
 	freeimage(p->image);
-	unlockdisplay(display);
 	p->image = nil;
 }
 
@@ -1008,9 +1004,7 @@
 				newwin = 0;
 				resizewin(size);
 			}
-			lockdisplay(display);
 			drawpage(p);
-			unlockdisplay(display);
 		}
 		qunlock(p);
 	next:
@@ -1034,9 +1028,7 @@
 {
 	Page *next, *up;
 
-	drawlock(0);
 	unloadpage(p);
-	drawlock(1);
 	if(p->fd >= 0)
 		close(p->fd);
 	p->fd = -1;
@@ -1430,29 +1422,13 @@
 	nproc++;
 }
 
-/* recursive display lock, called from main proc only */
 void
-drawlock(int dolock){
-	static int ref = 0;
-	if(dolock){
-		if(ref++ == 0)
-			lockdisplay(display);
-	} else {
-		if(--ref == 0)
-			unlockdisplay(display);
-	}
-}
-
-
-void
 showpage(Page *p)
 {
 	if(p == nil)
 		return;
-	drawlock(0);
 	unloadpages(imemlimit);
 	showpage1(p);
-	drawlock(1);
 }
 
 void
@@ -1463,7 +1439,6 @@
 
 	if(p == nil)
 		return;
-	drawlock(0);
 	qlock(p);
 	if((fd = openpage(p)) < 0)
 		goto Out;
@@ -1479,7 +1454,6 @@
 	close(fd);
 Out:
 	qunlock(p);
-	drawlock(1);
 }
 
 void
@@ -1495,7 +1469,6 @@
 	ps = Pt(0, 0);
 	if(p->image != nil)
 		ps = addpt(subpt(p->image->r.max, p->image->r.min), Pt(24, 24));
-	drawlock(0);
 	if((fd = p->fd) < 0){
 		if(p->open != popenfile)
 			return;
@@ -1522,7 +1495,6 @@
 		exits(0);
 	}
 	close(fd);
-	drawlock(1);
 }
 
 void
@@ -1530,7 +1502,6 @@
 {
 	Page *p;
 
-	drawlock(1);
 	if(new && getwindow(display, Refnone) == -1)
 		sysfatal("getwindow: %r");
 	draw(screen, screen->r, cols[Cground], nil, ZP);
@@ -1540,7 +1511,6 @@
 			qunlock(p);
 		}
 	}
-	drawlock(0);
 }
 
 int cohort = -1;
@@ -1582,10 +1552,8 @@
 		rotate = 0;
 	Unload:
 		viewgen++;
-		drawlock(0);
 		unloadpages(0);
 		showpage1(current);
-		drawlock(1);
 		break;
 	case Cupsidedown:
 		rotate += 90;
@@ -1672,10 +1640,8 @@
 			break;
 		}
 		if((current = p) == nil){
-			drawlock(0);
 			draw(screen, screen->r, cols[Cground], nil, ZP);
 			drawframe(screen->r);
-			drawlock(1);
 			break;
 		}
 		showpage(current);
@@ -1813,9 +1779,7 @@
 	readtheme(th, nelem(th), nil);
 	for(i=0; i<nelem(cols); i++)
  		cols[i] = allocimage(display, Rect(0,0,1,1), screen->chan, 1, th[i].c);
-	display->locking = 1;
 	draw(screen, screen->r, cols[Cground], nil, ZP);
-	unlockdisplay(display);
 
 	einit(Ekeyboard|Emouse);
 	eplumb(Eplumb, "image");
@@ -1834,11 +1798,8 @@
 	for(i=0; i<NPROC/4; i++)	/* rice */
 		showpage1(current);
 
-	drawlock(1);
 	for(;;){
-		drawlock(0);
 		i=event(&e);
-		drawlock(1);
 
 		switch(i){
 		case Emouse:
@@ -1942,9 +1903,7 @@
 				j = trywalk(s, plumblookup(pm->attr, "addr"));
 				if(j == nil){
 					current = root;
-					drawlock(0);
 					j = addpage(root, s, popenfile, s, fd);
-					drawlock(1);
 				}
 				forward = 0;
 				showpage(j);
--