• Guido van Rossum's avatar
    Fast NonRecursiveMutex support by Yakov Markovitch, markovitch@iso.ru, · 706262bd
    Guido van Rossum authored
    who wrote:
    
    Here's the new version of thread_nt.h.  More particular, there is a
    new version of thread lock that uses kernel object (e.g. semaphore)
    only in case of contention; in other case it simply uses interlocked
    functions, which are faster by the order of magnitude.  It doesn't
    make much difference without threads present, but as soon as thread
    machinery initialised and (mostly) the interpreter global lock is on,
    difference becomes tremendous.  I've included a small script, which
    initialises threads and launches pystone.  With original thread_nt.h,
    Pystone results with initialised threads are twofold worse then w/o
    threads.  With the new version, only 10% worse.  I have used this
    patch for about 6 months (with threaded and non-threaded
    applications).  It works remarkably well (though I'd desperately
    prefer Python was free-threaded; I hope, it will soon).
    706262bd
thread_nt.h 9.41 KB