delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/11/27/21:37:10

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
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 <tom AT huno DOT net>
Reply-To: thomas <cygwin AT cygwin DOT com>
X-Priority: 3 (Normal)
Message-ID: <6654089625.20021128033745@huno.net>
To: thomas <cygwin AT cygwin DOT com>
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


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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019