Lock the read socket receive buffer when frobbing the sb_state flag on
that socket during open, not the write socket receive buffer. This might explain clearing of the sb_state SB_LOCK flag seen occasionally in soreceive() on fifos. MFC after: 3 days Spotted by: ups
This commit is contained in:
parent
c8e3d92a3a
commit
ee47648770
@ -247,9 +247,9 @@ fail1:
|
||||
}
|
||||
fip->fi_writers++;
|
||||
if (fip->fi_writers == 1) {
|
||||
SOCKBUF_LOCK(&fip->fi_writesock->so_rcv);
|
||||
SOCKBUF_LOCK(&fip->fi_readsock->so_rcv);
|
||||
fip->fi_readsock->so_rcv.sb_state &= ~SBS_CANTRCVMORE;
|
||||
SOCKBUF_UNLOCK(&fip->fi_writesock->so_rcv);
|
||||
SOCKBUF_UNLOCK(&fip->fi_readsock->so_rcv);
|
||||
if (fip->fi_readers > 0) {
|
||||
wakeup(&fip->fi_readers);
|
||||
sorwakeup(fip->fi_readsock);
|
||||
|
Loading…
x
Reference in New Issue
Block a user