delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/06/26/13:45:23

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/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: Sat, 26 Jun 2004 13:41:45 -0400
From: "Pierre A. Humblet" <pierre DOT humblet AT ieee DOT org>
To: cygwin AT cygwin DOT com
Subject: Re: higher-level IO very slow with cygwin1.dll 5.10 (due to set_flags?)
Message-ID: <20040626174145.GA1032441@hpn5170x>
Mail-Followup-To: "Pierre A. Humblet" <pierre DOT humblet AT ieee DOT org>, cygwin AT cygwin DOT com
References: <opr96vbqwilh6y6a AT localhost> <20040626154504 DOT GA961349 AT hpn5170x> <20040626160554 DOT GA980221 AT hpn5170x> <20040626170940 DOT GD20063 AT trixie DOT casa DOT cgf DOT cx>
Mime-Version: 1.0
In-Reply-To: <20040626170940.GD20063@trixie.casa.cgf.cx>
User-Agent: Mutt/1.4.1i

On Sat, Jun 26, 2004 at 01:09:40PM -0400, Christopher Faylor wrote:
> On Sat, Jun 26, 2004 at 12:05:54PM -0400, Pierre A. Humblet wrote:
> >Beware, I found this:
> >2000-05-19  DJ Delorie  <dj AT cygnus DOT com>
> >	* libc/include/stdio.h: no getc/putc macros for cygwin; causes
> >	compatibility issues with different dll versions
> >so you may need to recompile when updating cygwin.
> 
> Also wouldn't that work around the file locks that were ostensibly put
> there for a reason?

That crossed my mind. But there is no file lock in the macro, which is
used by systems other than cygwin. How do they manage it?
I also assume that single threaded programs don't need the lock.

I would be perfectly happy to have a thread-unsafe getc/putc macro,
and to use fgetc/fputc when I care about multithreading.

Digging deeper, I see there is a function getc_unlocked. Using it
instead of getc improves the speed by a factor 5. 
Now that I know about it, I will redefine getc to getc_unlocked when
porting single threaded applications.

That issue may be a factor in the legendary slowness of Cygwin.

Pierre

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.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