Introduction
Introduction Statistics Contact Development Disclaimer Help
t9pserve: fix a new race involving assert(c->nmsg == 0). - plan9port - [fork] P…
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit 4a6f0510731b99025c51ce4dc35eee08f697f91a
parent ebda53e16b473c6ad8df070edd6f58e2e1e10994
Author: Russ Cox <[email protected]>
Date: Wed, 22 Aug 2007 09:14:25 -0400
9pserve: fix a new race involving assert(c->nmsg == 0).
Just like outputthread can have processed the message
but not yet called msgput, the same is true of the
connoutthread, so we cannot check c->nmsg until
after the connoutthread has shut down gracefully.
Diffstat:
M src/cmd/9pserve.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/src/cmd/9pserve.c b/src/cmd/9pserve.c
t@@ -560,13 +560,13 @@ connthread(void *arg)
sendq(outq, &sync);
recvp(c->outqdead);
- /* should be no messages left anywhere. */
- assert(c->nmsg == 0);
-
/* everything is quiet; can close the local output queue. */
sendq(c->outq, nil);
recvp(c->outqdead);
+ /* should be no messages left anywhere. */
+ assert(c->nmsg == 0);
+
/* clunk all outstanding fids */
for(i=0; i<NHASH; i++){
for(h=c->fid[i]; h; h=hnext){
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.