delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/09/03/05:38:45

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
Message-ID: <1031045914.3d74831ad243d@mail.broadpark.no>
Date: Tue, 3 Sep 2002 11:38:34 +0200
From: dvasaru AT broadpark DOT no
To: cygwin AT cygwin DOT com
Subject: Re: A Simple Real World Benchmark for cygwin
References: <20020902155542 DOT GC14051 AT redhat DOT com> <CHEDKHJJDLOCCOFLMGEAOEHMCLAA DOT dvasaru AT broadpark DOT no> <20020902220234 DOT GA22844 AT redhat DOT com> <20020903102756 DOT V12899 AT cygbert DOT vinschen DOT de>
In-Reply-To: <20020903102756.V12899@cygbert.vinschen.de>
MIME-Version: 1.0
User-Agent: Internet Messaging Program (IMP) 3.0
X-Originating-IP: 192.18.243.4

Quoting Corinna Vinschen <corinna-cygwin AT cygwin DOT com>:

> Uhm... it should have nothing to do with NTFS vs. other FS.  The shortcut
> symlinks are used on all FS.

That's what I thought to begin with, but cygwin cunningly uses Extended Attributes where available,  bypassing the check_shortcut and the whole COM world altogether on NTFS.

> The question is if we can drop CoUninitialize() completely.  If the call
> to CoUninitialize() is dropped, it should not matter to call CoInitialize()
> multiple times since it should only return a "The COM library is already
> initialized on this thread" return code.  That shouldn't take that much
> time.  The slowness results from the need to load DLLs and such stuff.

To quote from the MSDN:
"To close the COM library gracefully, each successful call to CoInitialize or CoInitializeEx, including those that return S_FALSE, must be balanced by a corresponding call to CoUninitialize"

Another relevant quote:
"Because there is no way to control the order in which in-process servers are loaded or unloaded, it is not safe to call CoInitialize, CoInitializeEx, or CoUninitialize from the DllMain function"

To accomodate cygwin-based COM users, one should probably swallow the MSDN prescription and find a better place to call  CoInit/CoUninit. 

On the other hand, if the shortcut file format is known(?), one could maybe bypass the COM/ IShellXXXX interfaces completely  and read the link directly from the file.

Dan



--
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