fix this megashit

This commit is contained in:
cinap_lenrek 2013-08-05 22:31:37 +02:00
parent 75e34ca08a
commit cdc0b89d81
2 changed files with 5 additions and 0 deletions

View file

@ -56,6 +56,7 @@ Timet boottime;
Queue* serveq; Queue* serveq;
Queue* raheadq; Queue* raheadq;
Rabuf* rabuffree; Rabuf* rabuffree;
QLock reflock;
Lock rabuflock; Lock rabuflock;
Tlock tlocks[NTLOCK]; Tlock tlocks[NTLOCK];
Lock tlocklock; Lock tlocklock;

View file

@ -314,6 +314,8 @@ main(int argc, char **argv)
printsizes(); printsizes();
} }
qlock(&reflock);
qunlock(&reflock);
serveq = newqueue(1000, "9P service"); /* tunable */ serveq = newqueue(1000, "9P service"); /* tunable */
raheadq = newqueue(1000, "readahead"); /* tunable */ raheadq = newqueue(1000, "readahead"); /* tunable */
@ -449,6 +451,7 @@ serve(void *)
Msgbuf *mb; Msgbuf *mb;
for (;;) { for (;;) {
qlock(&reflock);
/* read 9P request from a network input process */ /* read 9P request from a network input process */
mb = fs_recv(serveq, 0); mb = fs_recv(serveq, 0);
assert(mb->magic == Mbmagic); assert(mb->magic == Mbmagic);
@ -457,6 +460,7 @@ serve(void *)
if (cp == nil) if (cp == nil)
panic("serve: nil mb->chan"); panic("serve: nil mb->chan");
rlock(&cp->reflock); rlock(&cp->reflock);
qunlock(&reflock);
rlock(&mainlock); rlock(&mainlock);