This is the mail archive of the
mailing list for the Cygwin project.
RE: Broken since 1.3.10, or earlier
- From: "Dan Higgins" <DanHiggins at austin dot rr dot com>
- To: "Randall R Schulz" <rrschulz at cris dot com>, <cygwin at cygwin dot com>
- Date: Tue, 16 Jul 2002 19:14:41 -0500
- Subject: RE: Broken since 1.3.10, or earlier
- Reply-to: <dan at danamis dot com>
Ah, it has been a few *years* since I checked the grep man page. Who
would've thought, someone has been improving it all that time... :)
Thanks for the excellent response.
Austin, TX, USA
> -----Original Message-----
> From: Randall R Schulz [mailto:firstname.lastname@example.org]
> Sent: Tuesday, July 16, 2002 7:01 PM
> To: email@example.com; firstname.lastname@example.org
> Subject: Re: Broken since 1.3.10, or earlier
> I take it that by "inconsistent" you mean the relative ordering of the
> output of the "grep" processes and of the "echo" commands is not
> the strict
> alternation you'd expect.
> That's what I see, anyway. I even saw two lines of grep output
> that follow
> the shell prompt printed after the command "completes."
> It seems there's some asynchrony in the processing of the output and that
> somehow, in effect, there's a race condition.
> I believe we've seen other reports of similar problems.
> Someone who knows about the internal architecture of I/O processing in
> Cygwin might be able to shed some light on this. If, for example, there's
> some kind of queuing of I/O operations in Cygwin1.dll between the
> application code (grep or a shell, in this case) and the Windows I/O
> primitives, then there might be an opportunity for this kind of
> It's too bad strace cannot solve this one, but since there's the
> shell plus
> one grep for each file to be examined, it's not going to help resolve
> relative timing issues.
> Lest you think this is just idle speculation ... Well it is ...
> But here's
> a concrete suggestion on a work-around:
> grep -R --include='*.java' Copyright .
> If you need those other lines interleaved with the just file
> names, you can
> do this:
> (grep -R --include='*.java' Copyright tau rrs;
> grep -l -R --include='*.java' Copyright tau rrs) |sort
> This may do everything twice, but on Cygwin, anyway, it's
> distinctly faster
> than your original, what with it's repeated invocation of grep.
> I hope you find that helpful.
> Randall Schulz
> Mountain View, CA USA
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html