labath added a comment.
When I created the `MainLoop` class, i was hoping it would become the central
place for all select-like functionality. Currently it uses pselect, but i don't
see a reason we couldn't switch it to ppoll (but we actually don't have to, as
the current implementation should work just fine for your use case). We also
can-but-don't-have-to provide a specialized kevent-based implementation for
mac&freebsd (afaict, kevent also supports listening for signals, but i would be
fine with leaving that out even, as we don't need that functionality on these
platforms). So all that needs to be added is a WSAPoll-based MainLoopWindows.
Then your `Listen` implementation would boil down to:
for (auto socket: sockets)
handles.emplace_back(loop.RegisterReadObject(socket, [&] { accepted =
accept(socket, ...); loop.RequestTermination(); });
loop.Run();
I'm not married to the current MainLoop interface in any way, so we can change
it if you find the current one cumbersome, but I would like to cut down the
number of selecting pieces of code.
What do you think about that?
================
Comment at: source/Host/common/TCPSocket.cpp:284
+#if defined(_WIN32)
+ int retval = WSAPoll(sock_set.data(), sock_set.size(), 1000);
+#else
----------------
Why not simply use infinite timeout if that's the behaviour you desire?
https://reviews.llvm.org/D31823
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits