Update nonblocking flags of UNIX sockets correctly

This commit is contained in:
Ruihan Li 2024-06-18 16:43:06 +08:00 committed by Tate, Hongliang Tian
parent fa584bd8f5
commit 94e043ac8d

View File

@ -69,14 +69,14 @@ impl Endpoint {
} }
pub(super) fn set_nonblocking(&self, is_nonblocking: bool) -> Result<()> { pub(super) fn set_nonblocking(&self, is_nonblocking: bool) -> Result<()> {
let reader_flags = self.0.reader.status_flags(); let mut reader_flags = self.0.reader.status_flags();
self.0 reader_flags.set(StatusFlags::O_NONBLOCK, is_nonblocking);
.reader self.0.reader.set_status_flags(reader_flags)?;
.set_status_flags(reader_flags | StatusFlags::O_NONBLOCK)?;
let writer_flags = self.0.writer.status_flags(); let mut writer_flags = self.0.writer.status_flags();
self.0 writer_flags.set(StatusFlags::O_NONBLOCK, is_nonblocking);
.writer self.0.writer.set_status_flags(writer_flags)?;
.set_status_flags(writer_flags | StatusFlags::O_NONBLOCK)?;
Ok(()) Ok(())
} }