Re: Futexes ain't fast

Liste des GroupesRevenir à cl c++ 
Sujet : Re: Futexes ain't fast
De : chris.m.thomasson.1 (at) *nospam* gmail.com (Chris M. Thomasson)
Groupes : comp.lang.c++
Date : 29. Aug 2024, 20:20:59
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vaqhmr$2r8p$7@dont-email.me>
References : 1 2 3 4 5 6 7 8
User-Agent : Mozilla Thunderbird
On 8/29/2024 7:30 AM, Bonita Montero wrote:
This is by far the fastest code:
 #if defined(_WIN32)
     HANDLE hSem = CreateSemaphoreA( nullptr, 0, 0x7FFFFFFF, nullptr );
     auto acquire = [&] { WaitForSingleObject( hSem, INFINITE ); };
     auto release = [&] { ReleaseSemaphore( hSem, 1, nullptr ); };
^^^^^^^^^^^^^^^^^^^^^^
Actually, release can be SetEvent because the mutex logic only needs a binary semaphore, or an event on windows. However, I cannot remember if an event is "faster" than a semaphore on windows or not. Still do not know how windows handles it's futexes wrt internal impl. WaitOnAddress and such.

#elif defined(__unix__)
     sem_t sem;
     sem_init( &sem, 0, 0 );
     auto acquire = [&] { while( sem_wait( &sem ) == EINTR ); };
     auto release = [&] { sem_post( &sem ); };
#endif
     tests.emplace_back( "CT-Sema", [&]
         {
             if( ctFutex.exchange( 1, memory_order_acquire ) )
                 while( ctFutex.exchange( 2, memory_order_acquire ) )
                     acquire();
             if( ctFutex.exchange( 0, memory_order_release ) == 2 )
                 release();
         } );

Date Sujet#  Auteur
28 Aug 24 * Futexes ain't fast38Bonita Montero
28 Aug 24 +- Re: Futexes ain't fast1Bonita Montero
28 Aug 24 +* Re: Futexes ain't fast20Chris M. Thomasson
29 Aug 24 i`* Re: Futexes ain't fast19Bonita Montero
29 Aug 24 i `* Re: Futexes ain't fast18Chris M. Thomasson
29 Aug 24 i  +* Re: Futexes ain't fast16Chris M. Thomasson
29 Aug 24 i  i`* Re: Futexes ain't fast15Bonita Montero
29 Aug 24 i  i +* Re: Futexes ain't fast10Bonita Montero
29 Aug 24 i  i i`* Re: Futexes ain't fast9Bonita Montero
29 Aug 24 i  i i +* Re: Futexes ain't fast4Chris M. Thomasson
29 Aug 24 i  i i i+* Re: Futexes ain't fast2Bonita Montero
30 Aug 24 i  i i ii`- Re: Futexes ain't fast1Chris M. Thomasson
19 Sep 24 i  i i i`- Re: Futexes ain't fast1Chris M. Thomasson
29 Aug 24 i  i i +* Re: Futexes ain't fast3Chris M. Thomasson
30 Aug 24 i  i i i`* Re: Futexes ain't fast2Bonita Montero
30 Aug 24 i  i i i `- Re: Futexes ain't fast1Chris M. Thomasson
29 Aug 24 i  i i `- Re: Futexes ain't fast1Chris M. Thomasson
29 Aug 24 i  i `* Re: Futexes ain't fast4Chris M. Thomasson
29 Aug 24 i  i  `* Re: Futexes ain't fast3Chris M. Thomasson
29 Aug 24 i  i   `* Re: Futexes ain't fast2Bonita Montero
30 Aug 24 i  i    `- Re: Futexes ain't fast1Chris M. Thomasson
29 Aug 24 i  `- Re: Futexes ain't fast1Chris M. Thomasson
30 Aug 24 `* Re: Futexes ain't fast16jseigh
30 Aug 24  +* Re: Futexes ain't fast11Bonita Montero
30 Aug 24  i`* Re: Futexes ain't fast10Chris M. Thomasson
30 Aug 24  i `* Re: Futexes ain't fast9Bonita Montero
30 Aug 24  i  +* Re: Futexes ain't fast7Chris M. Thomasson
26 Sep 24  i  i`* Re: Futexes ain't fast6Bonita Montero
26 Sep 24  i  i `* Re: Futexes ain't fast5Chris M. Thomasson
26 Sep 24  i  i  `* Re: Futexes ain't fast4Bonita Montero
26 Sep 24  i  i   `* Re: Futexes ain't fast3Chris M. Thomasson
26 Sep 24  i  i    `* Re: Futexes ain't fast2Bonita Montero
26 Sep 24  i  i     `- Re: Futexes ain't fast1Chris M. Thomasson
30 Aug 24  i  `- Re: Futexes ain't fast1Chris M. Thomasson
30 Aug 24  `* Re: Futexes ain't fast4Chris M. Thomasson
31 Aug 24   `* Re: Futexes ain't fast3jseigh
2 Sep 24    +- Re: Futexes ain't fast1Chris M. Thomasson
15 Sep 24    `- Re: Futexes ain't fast1Chris M. Thomasson

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal