This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Broken since 1.3.10, or earlier


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.

Cheers,
-Dan
Austin, TX, USA


> -----Original Message-----
> From: Randall R Schulz [mailto:rrschulz@cris.com]
> Sent: Tuesday, July 16, 2002 7:01 PM
> To: dan@danamis.com; cygwin@cygwin.com
> Subject: Re: Broken since 1.3.10, or earlier
>
>
> Dan,
>
> 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
> asynchrony.
>
> 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
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]