mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-26 19:29:16 +00:00
LibCore: Properly shutdown a socket on Windows
It fixes a bug in which ImageDecoder and RequestServer do not exit because their connections don't close. This makes the shutdown behavior match the Linux version, which receives FD_READ | FD_HANGUP on socket close, and TransportSocket::read_as_much_as_possible_without_blocking calls schedule_shutdown when read from a socket returns 0 bytes. On Windows, we have to explicitly call WIN32 shutdown to receive notification FD_CLOSE.
This commit is contained in:
@@ -122,6 +122,8 @@ void PosixSocketHelper::close()
|
||||
if (m_notifier)
|
||||
m_notifier->set_enabled(false);
|
||||
|
||||
// shutdown is required for another end to receive FD_CLOSE
|
||||
shutdown(m_fd, SD_BOTH);
|
||||
MUST(System::close(m_fd));
|
||||
m_fd = -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user