On Tue, May 21, 2019 at 2:32 PM Ivan Zhakov <[email protected]> wrote:
> > > > More specifically, I would like to: > > > > 1. Use native Slim Reader/Writer (SRW) locks [1] for apr_rwlock. > > > > Windows SRW locks are extremely performant (100x times) and also the > > current APR implementation has known bugs [2]. > > > > Although the basic SRW API is available since Windows Vista, the Try* > > functions that required for the implementation are only available > since > > Windows 7 [3]. > > > Done in r1859584. > > > 2. Use SetThreadErrorMode() [4] instead of SetErrorMode() because > > SetErrorMode() is not thread safe. > > > > This new API is available since Windows 7. > > > Done in r1859519. > > > 3. Use BCrypt API instead of CryptoAPI as an entropy source. > > > > Although the BCrypt API by itself is available starting from Windows > Vista, > > an important `BCRYPT_USE_SYSTEM_PREFERRED_RNG` flag can only be > > used on Windows 7 and later. > > > Done in r1859608. > > > 4. Use native one-time initialization [5] for apr_thread_once_t. > > > > The current Win32 implementation has a problem that it can return > before > > the other thread completes initialization. > > > > This particular API is available starting from Windows Vista. > > > Done in r1859517. Tremendous progress, thanks for all of your efforts! I just finished a visual review yesterday. I don't know whom of us will jump on removing the ANSI logic first, but that's next on the chopping block with unanimous consent. Again, thanks! Bill (And yes, I was referring to DisconnectEx() in the earlier dialog.)
