[PATCH] workaround for sigproc_init

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Sun Jul 31 18:51:00 GMT 2011


On Sun, Jul 31, 2011 at 10:26:23AM +0200, Corinna Vinschen wrote:
>On Jul 30 17:04, Christopher Faylor wrote:
>> On Fri, Jul 29, 2011 at 08:41:10PM +0900, jojelino wrote:
>> >As sigproc_init is called during dll initialization, wait_sig thread is 
>> >not created as soon as possible.(this is known in msdn createthread 
>> >reference. http://msdn.microsoft.com/en-us/library/ms682453(v=vs.85).aspx)
>> >And then wait_sig starts to wake up as sig_dispatch_pending enters 
>> >waitforsingleobject. then main thread stops for few ms. and it shows 
>> >poor performance.
>> 
>> Incidentally, the intent of the now-defunct wincap
>> wincap.has_buggy_thread_startup was to avoid creating wait_sig during
>> thread startup, moving it to dll_crt0_1() which is the code that
>> eventually calls main().
>> 
>> (This was all rehashed back in August/September 2010)
>> 
>> Although I didn't fiddle with that myself, Corinna reported that having
>> the value set had no effect in her test cases so I don't think your
>> analysis here is 100% correct.
>
>Erm, I tested on 32 bit.  The slowdown occured on all platforms, not
>only 64 bit.  64 bit is still only half as fast in the date loop for
>reason or reasons unknown.

With my recent changes, I see about 10% difference between W7 64-bit
and XP 32-bit on the same machine.  W7 64-bit is slower.

cgf



More information about the Cygwin-patches mailing list