summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/port/segment.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/src/9/port/segment.c b/sys/src/9/port/segment.c
index 3bf5c1079..299d8c96b 100644
--- a/sys/src/9/port/segment.c
+++ b/sys/src/9/port/segment.c
@@ -799,8 +799,11 @@ docmd(Segio *sio, int cmd)
{
sio->err = nil;
sio->cmd = cmd;
+ while(waserror())
+ ;
wakeup(&sio->cmdwait);
sleep(&sio->replywait, cmddone, sio);
+ poperror();
if(sio->err != nil)
error(sio->err);
}