Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Thu, 28 Nov 2002 03:37:45 +0100 From: thomas Reply-To: thomas X-Priority: 3 (Normal) Message-ID: <6654089625.20021128033745@huno.net> To: thomas Subject: Re: pipe performance problem In-Reply-To: <5549457171.20021128022032@huno.net> References: <777770015 DOT 20021122040845 AT huno DOT net> <007301c291ff$eb9ce050$78d96f83 AT pomello> <21545718 DOT 20021122114035 AT huno DOT net> <12415481703 DOT 20021122220059 AT huno DOT net> <20021122210856 DOT GA10679 AT redhat DOT com> <5 DOT 1 DOT 0 DOT 14 DOT 2 DOT 20021122143402 DOT 00fdc148 AT pop3 DOT cris DOT com> <10824453046 DOT 20021123003030 AT huno DOT net> <14936170000 DOT 20021127223905 AT huno DOT net> <20021127233624 DOT GK17798 AT redhat DOT com> <1245871093 DOT 20021128012046 AT huno DOT net> <20021128003443 DOT GD21457 AT redhat DOT com> <5549457171 DOT 20021128022032 AT huno DOT net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit It seems to be a mystery whats going on, at least i'm not clever enough find it out :( Both sides of the pipe (cat and dd) wait at the same time, but what for? Is one waiting for the other and vice versa? I have no idea. Look here: 23 2139047 [main] cat 3660 fhandler_base::write: binary write 2234 2141281 [main] cat 3660 fhandler_base::write: DEBUG 0 fhandler.cc 28626 2169907 [main] cat 3660 fhandler_base::write: 1024 = write (0x10021748, 1024) 25 2128939 [main] dd 1900 fhandler_base::ready_for_read: DEBUG 8.h select.cc 13787 2142726 [main] dd 1900 fhandler_base::ready_for_read: DEBUG 8.c select.cc Now look at the code where DEBUG 0 is: if (get_w_binary ()) { debug_printf ("binary write"); res = raw_write (ptr, len); debug_printf ("DEBUG 0 fhandler.cc"); } // there is an else here, but we dont call it anyway debug_printf ("%d = write (%p, %d)", res, ptr, len); return res; There's nothing to wait for or is there. DEBUG 8.h is the WaitForSingleObject. Maybe i'm still looking at the wrong place. thomas -- 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/