Re: "target remote | " stderr

Vladimir Prus
2007-02-17T07:50:28Z

Mark Kettenis wrote:

>> From: Vladimir Prus <ghost@cs.msu.su>
>> Date: Sun, 11 Feb 2007 19:55:03 +0300
>>
>> Daniel Jacobowitz wrote:
>>
>> > On Wed, Jan 31, 2007 at 05:34:21PM +0300, Vladimir Prus wrote:
>> >> Implementing for MinGW required modifying libiberty so that
>> >> it can catch stderr to a pipe. Here's a patch for gdb that
>> >> relies on the libiberty patch. Does this sound OK
>> >> provided libiberty patch is approved?
>> >
>> > Do we automatically get a non-blocking pipe on mingw, or do we have to
>> > set it ourselves?
>>
>> We have to set it ourself, unfortunately. I had one test case working
>> fine, but got gdb hanging on some other.
>>
>> The attached patch works around the blocking issues, and more extensively
>> tested. OK?
>
> Please keep Windows-specific code out of ser-base.c. Is read() on
> MinGW fully blocking? Or will it return whatever is available and
> only block if nothing is available.

Documentation for ReadFile suggests that it will block until the
requested number of bytes is available.

> Then you could use gdb_select()
> to check whether input is available on the pipe.

How the possibility of using gdb_select() depends on read() being fully
blocking or not? I think I miss some connection here.

> Otherwise, you should think about introducing an asbtraction layer for
> reading from error_fd.

Is it indeed worthwhile to introduce abstraction layer to hide 5 lines of code?

- Volodya