Ah, so it is a known issue. Thanks, got it now. We recently did a merge which brought in the new changes from upstream.
Isn’t the ::select used in ConnectionFileDescriptor to wait till input is available? Not just from the command pipe, but also from the sockets. On 7 Aug 2014, at 21:38, Zachary Turner <[email protected]> wrote: > Sorry, hit enter too soon. I have been thinking about next steps for fixing > this in the longer term. I think the way to go is that on Windows, > ConnectionFileDescriptor shouldn't even use select at all, nor should it use > the command pipe. The purpose of the command pipe seems to be so that > various interrupt commands can be sent to interrupt the select, and then > terminate the connection or something else so that it doesn't block forever. > > On Windows, the closest equivalent to select is WaitForMultipleObjects. So I > think on Windows we need to switch to using WFMO instead of select(). The > command pipe will be replaced by various event objects, which the user will > set according to which interruption command they want to send. WFMO doesn't > accept sockets though, so we need to call WSAEventSelect() to get an event > handle corresponding to read/write operations on the socket. > > There's numerous other portability issues with this class currently, most > notably that select() on windows doesn't set errno > > > On Thu, Aug 7, 2014 at 1:34 PM, Zachary Turner <[email protected]> wrote: > This is a known issue. But I don't think this is a regression. It's just > always been this way. Basically on Windows, select() only deals with > sockets. It doesn't work with pipes, files, or anything else. In other > words, ConnectionFileDescriptor is just fundamentally broken on Windows. I > recently pushed a large refactor to the socket logic in > ConnectionFileDescriptor which is aimed at addressing this. But it's only > one step of what I think will be a long process to get > ConnectionFileDescriptor working on Windows. > > > On Thu, Aug 7, 2014 at 1:01 PM, Deepak Panickal <[email protected]> wrote: > Hi, > > I have been seeing an issue with the refactored pipe support changes on > Windows using _pipe(). > > This is specifically at the ::select function in > ConnectionFileDescriptor::BytesAvailable(). > On Windows, the ::select fails if the pipe file descriptor is also included > and so the connection fails. > > http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ConnectionFileDescriptor.cpp?view=markup > > Wanted to ask if anybody else on Windows is seeing any such issue? > > Thanks, > Deepak > > > _______________________________________________ > lldb-dev mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev > >
_______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
