Skip to content

Commit 5ae6f2a

Browse files
committed
fix: merge kqueue events manually as they are not bitwise OR'ed
1 parent 0d92d40 commit 5ae6f2a

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/util/sock.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,11 @@ bool Sock::WaitManyKQueue(std::chrono::milliseconds timeout, EventsPerSock& even
287287
occurred |= SEND;
288288
}
289289
}
290-
events_per_sock.emplace(static_cast<SOCKET>(ev.ident), Sock::Events{/*req=*/RECV | SEND, occurred});
290+
if (auto it = events_per_sock.find(static_cast<SOCKET>(ev.ident)); it != events_per_sock.end()) {
291+
it->second.occurred |= occurred;
292+
} else {
293+
events_per_sock.emplace(static_cast<SOCKET>(ev.ident), Sock::Events{/*req=*/RECV | SEND, occurred});
294+
}
291295
}
292296

293297
return true;

0 commit comments

Comments
 (0)