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); }