Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

No, that'd be silly. -- Larry Wall in <199710221710.KAA24242@wall.org>


devel / comp.lang.c++ / Re: C++20 futex with heavy contention slower than mutex

SubjectAuthor
* C++20 futex with heavy contention slower than mutexBonita Montero
+* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
|+* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||`* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
|| +- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
|| `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||  `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   +- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   +* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |`* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   | `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |  `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |   `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |    `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |     `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |      `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |       `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |        `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |         `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |          `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |           `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |            `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |             +* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |             |`- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |             +- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |             `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |              `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |               `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                 `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  +* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |`* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  | `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |  `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   +* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |+- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |`* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   | `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |  `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |   `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |    `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |     `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |      `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |       `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |        +* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |        |`* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |        | `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |        |  `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |        |   `- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |        `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  |   |         `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |          `* Re: C++20 futex with heavy contention slower than mutexRichard Damon
||   |                  |   |           `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |            +* Re: C++20 futex with heavy contention slower than mutexScott Lurndal
||   |                  |   |            |`* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |            | `* Re: C++20 futex with heavy contention slower than mutexScott Lurndal
||   |                  |   |            |  `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |            |   `* Re: C++20 futex with heavy contention slower than mutexScott Lurndal
||   |                  |   |            |    `* Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |            |     `* Re: C++20 futex with heavy contention slower than mutexScott Lurndal
||   |                  |   |            |      `- Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   |            `* Re: C++20 futex with heavy contention slower than mutexRichard Damon
||   |                  |   |             `- Re: C++20 futex with heavy contention slower than mutexBonita Montero
||   |                  |   `- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   |                  `- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||   `* Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
||    `- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
|`- Re: C++20 futex with heavy contention slower than mutexBonita Montero
+- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson
`* Re: C++20 futex with heavy contention slower than mutexMichael S
 `- Re: C++20 futex with heavy contention slower than mutexChris M. Thomasson

Pages:123
Re: C++20 futex with heavy contention slower than mutex

<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3592&group=comp.lang.c%2B%2B#3592

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 06:19:16 +0200
Organization: A noiseless patient Spider
Lines: 19
Message-ID: <uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 06:19:11 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="3644889"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/EgyLZGf/TGinswFVY4E70g6iCg3cDskE="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:kbefS7k33iFIxlvLUQypJOjJZJI=
Content-Language: de-DE
In-Reply-To: <uvem9v$35hth$1@dont-email.me>
 by: Bonita Montero - Sun, 14 Apr 2024 04:19 UTC

Am 13.04.2024 um 21:26 schrieb Chris M. Thomasson:

> On 4/12/2024 6:00 PM, Bonita Montero wrote:

>> There's no slow path with futexes since you've to notify _always_.

> Huh? Nope! Where did you get that idea from? calling notify is a slow
> path, and calling wait is a slow path.

Unlocking a futex always involves a notify since the notify doesn't
depend on a state like a wait().

>
>> And 1.7ns isn't slow.
>
> You do not want to _always_ call notify and/or wait when you do not have
> to.

You don't unterstand futexes. Show me your mutex basing on C++20 futexes.

Re: C++20 futex with heavy contention slower than mutex

<uvflt5$3fa23$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3593&group=comp.lang.c%2B%2B#3593

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sat, 13 Apr 2024 21:26:12 -0700
Organization: A noiseless patient Spider
Lines: 28
Message-ID: <uvflt5$3fa23$1@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 06:26:13 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3647555"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/ILGPxHQ6fY/NHqrkJ2BTS0sxIxkyq0UM="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:vEa6WHoylwFFsZsOydUzhGgLHtI=
Content-Language: en-US
In-Reply-To: <uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
 by: Chris M. Thomasson - Sun, 14 Apr 2024 04:26 UTC

On 4/13/2024 9:19 PM, Bonita Montero wrote:
> Am 13.04.2024 um 21:26 schrieb Chris M. Thomasson:
>
>> On 4/12/2024 6:00 PM, Bonita Montero wrote:
>
>>> There's no slow path with futexes since you've to notify _always_.
>
>> Huh? Nope! Where did you get that idea from? calling notify is a slow
>> path, and calling wait is a slow path.
>
> Unlocking a futex always involves a notify since the notify doesn't
> depend on a state like a wait().
>
>>
>>> And 1.7ns isn't slow.
>>
>> You do not want to _always_ call notify and/or wait when you do not
>> have to.
>
> You don't unterstand futexes. Show me your mutex basing on C++20 futexes.

Did you read it? using windwos futexes:

https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ

Notice how it does not unlock all the time?

I can port it to c++20.

Re: C++20 futex with heavy contention slower than mutex

<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3594&group=comp.lang.c%2B%2B#3594

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 06:30:52 +0200
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 06:30:47 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="3649196"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX198bzP9W8EYpX8X/Qv/ZGAt89Amz0cI0yU="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:wHwVNJz5+vnhVeE7Dt0w4UtT4uc=
In-Reply-To: <uvflt5$3fa23$1@dont-email.me>
Content-Language: de-DE
 by: Bonita Montero - Sun, 14 Apr 2024 04:30 UTC

Am 14.04.2024 um 06:26 schrieb Chris M. Thomasson:

> On 4/13/2024 9:19 PM, Bonita Montero wrote:

>> You don't unterstand futexes. Show me your mutex basing on C++20 futexes.
>
> Did you read it? using windwos futexes:
> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
> Notice how it does not unlock all the time?
> I can port it to c++20.

Show me your mutex with a futex.
It's impossible to write that without notifying *always*.

Re: C++20 futex with heavy contention slower than mutex

<uvfmbs$3fblc$2@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3595&group=comp.lang.c%2B%2B#3595

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 06:34:09 +0200
Organization: A noiseless patient Spider
Lines: 45
Message-ID: <uvfmbs$3fblc$2@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 06:34:04 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="3649196"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX186VGaJwxxvD4CA2x6vMawCC2tSLB1I5AY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:LkWH9YHNRlgTyHDzJFVOT+vGbrQ=
Content-Language: de-DE
In-Reply-To: <uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
 by: Bonita Montero - Sun, 14 Apr 2024 04:34 UTC

Am 14.04.2024 um 06:30 schrieb Bonita Montero:
> Am 14.04.2024 um 06:26 schrieb Chris M. Thomasson:
>
>> On 4/13/2024 9:19 PM, Bonita Montero wrote:
>
>>> You don't unterstand futexes. Show me your mutex basing on C++20
>>> futexes.
>>
>> Did you read it? using windwos futexes:
>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>> Notice how it does not unlock all the time?
>> I can port it to c++20.
>
> Show me your mutex with a futex.
> It's impossible to write that without notifying *always*.

That's the simplest code in C++20:

struct fute_xchg_mutex
{ fute_xchg_mutex();
void lock();
void unlock();
private:
atomic_bool m_locked;
};

fute_xchg_mutex::fute_xchg_mutex() :
m_locked( false )
{ }

void fute_xchg_mutex::lock()
{ while( m_locked.exchange( true, memory_order_acquire ) )
m_locked.wait( true, memory_order_relaxed );
}

void fute_xchg_mutex::unlock()
{ m_locked.store( false, memory_order_release );
m_locked.notify_one();
}

Re: C++20 futex with heavy contention slower than mutex

<uvfp4i$3fnnk$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3596&group=comp.lang.c%2B%2B#3596

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sat, 13 Apr 2024 22:21:22 -0700
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <uvfp4i$3fnnk$2@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:21:23 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3661556"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18/YQLdZ11sNd57436vupqVpsu1Ix1IrB0="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:DmgCedP8zYfjbLxp5M0g/6arZHE=
In-Reply-To: <uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
Content-Language: en-US
 by: Chris M. Thomasson - Sun, 14 Apr 2024 05:21 UTC

On 4/13/2024 9:30 PM, Bonita Montero wrote:
> Am 14.04.2024 um 06:26 schrieb Chris M. Thomasson:
>
>> On 4/13/2024 9:19 PM, Bonita Montero wrote:
>
>>> You don't unterstand futexes. Show me your mutex basing on C++20
>>> futexes.
>>
>> Did you read it? using windwos futexes:
>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>> Notice how it does not unlock all the time?
>> I can port it to c++20.
>
> Show me your mutex with a futex.
> It's impossible to write that without notifying *always*.

I beg to disagree.

Re: C++20 futex with heavy contention slower than mutex

<uvfp56$3fnnk$3@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3597&group=comp.lang.c%2B%2B#3597

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sat, 13 Apr 2024 22:21:42 -0700
Organization: A noiseless patient Spider
Lines: 51
Message-ID: <uvfp56$3fnnk$3@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfmbs$3fblc$2@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 14 Apr 2024 07:21:43 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3661556"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Zf6/TZaefN9BJD5bDWsmkgChM6KZA4+U="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:Yt1gEpOh0mUDIvGJlrQsvusnNTs=
Content-Language: en-US
In-Reply-To: <uvfmbs$3fblc$2@raubtier-asyl.eternal-september.org>
 by: Chris M. Thomasson - Sun, 14 Apr 2024 05:21 UTC

On 4/13/2024 9:34 PM, Bonita Montero wrote:
> Am 14.04.2024 um 06:30 schrieb Bonita Montero:
>> Am 14.04.2024 um 06:26 schrieb Chris M. Thomasson:
>>
>>> On 4/13/2024 9:19 PM, Bonita Montero wrote:
>>
>>>> You don't unterstand futexes. Show me your mutex basing on C++20
>>>> futexes.
>>>
>>> Did you read it? using windwos futexes:
>>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>> Notice how it does not unlock all the time?
>>> I can port it to c++20.
>>
>> Show me your mutex with a futex.
>> It's impossible to write that without notifying *always*.
>
> That's the simplest code in C++20:
>
> struct fute_xchg_mutex
> {
>     fute_xchg_mutex();
>     void lock();
>     void unlock();
> private:
>     atomic_bool m_locked;
> };
>
> fute_xchg_mutex::fute_xchg_mutex() :
>     m_locked( false )
> {
> }
>
> void fute_xchg_mutex::lock()
> {
>     while( m_locked.exchange( true, memory_order_acquire ) )
>         m_locked.wait( true, memory_order_relaxed );
> }
>
> void fute_xchg_mutex::unlock()
> {
>     m_locked.store( false, memory_order_release );
>     m_locked.notify_one();
^^^^^^^^^^

NONONNOONONO!

> }
>
>

Re: C++20 futex with heavy contention slower than mutex

<uvfp6l$3fnnk$4@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3598&group=comp.lang.c%2B%2B#3598

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sat, 13 Apr 2024 22:22:29 -0700
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <uvfp6l$3fnnk$4@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:22:30 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3661556"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+poBHuqfcaH2KdKKsezc7u1fJI6aiC824="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:ZNYDUPvV59HbLsY9fauJRLR8vic=
In-Reply-To: <uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
Content-Language: en-US
 by: Chris M. Thomasson - Sun, 14 Apr 2024 05:22 UTC

On 4/13/2024 9:30 PM, Bonita Montero wrote:
> Am 14.04.2024 um 06:26 schrieb Chris M. Thomasson:
>
>> On 4/13/2024 9:19 PM, Bonita Montero wrote:
>
>>> You don't unterstand futexes. Show me your mutex basing on C++20
>>> futexes.
>>
>> Did you read it? using windwos futexes:
>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>> Notice how it does not unlock all the time?
>> I can port it to c++20.
>
> Show me your mutex with a futex.
> It's impossible to write that without notifying *always*.

this is a complete troll, right?

Re: C++20 futex with heavy contention slower than mutex

<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3599&group=comp.lang.c%2B%2B#3599

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 07:30:59 +0200
Organization: A noiseless patient Spider
Lines: 22
Message-ID: <uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:30:53 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="3668557"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18VnesvVC7rHPAlnDycLheOgia9FkKxDjc="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:XeQsSWnZ//SB5xgtRVqA7NXiUPQ=
In-Reply-To: <uvfp6l$3fnnk$4@dont-email.me>
Content-Language: de-DE
 by: Bonita Montero - Sun, 14 Apr 2024 05:30 UTC

Am 14.04.2024 um 07:22 schrieb Chris M. Thomasson:
> On 4/13/2024 9:30 PM, Bonita Montero wrote:
>> Am 14.04.2024 um 06:26 schrieb Chris M. Thomasson:
>>
>>> On 4/13/2024 9:19 PM, Bonita Montero wrote:
>>
>>>> You don't unterstand futexes. Show me your mutex basing on C++20
>>>> futexes.
>>>
>>> Did you read it? using windwos futexes:
>>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>> Notice how it does not unlock all the time?
>>> I can port it to c++20.
>>
>> Show me your mutex with a futex.
>> It's impossible to write that without notifying *always*.
>
> this is a complete troll, right?

You don't know futexes.
Show me your code with a mutex basing on a futex.

Re: C++20 futex with heavy contention slower than mutex

<uvfppb$3fnnk$5@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3600&group=comp.lang.c%2B%2B#3600

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sat, 13 Apr 2024 22:32:27 -0700
Organization: A noiseless patient Spider
Lines: 29
Message-ID: <uvfppb$3fnnk$5@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:32:27 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3661556"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX190hWDJ6CC86wPVGqcgg4Ww6FbX0lQiubI="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:OxHm4g1kOjj2rbepFwsfDb+l/kg=
Content-Language: en-US
In-Reply-To: <uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
 by: Chris M. Thomasson - Sun, 14 Apr 2024 05:32 UTC

On 4/13/2024 10:30 PM, Bonita Montero wrote:
> Am 14.04.2024 um 07:22 schrieb Chris M. Thomasson:
>> On 4/13/2024 9:30 PM, Bonita Montero wrote:
>>> Am 14.04.2024 um 06:26 schrieb Chris M. Thomasson:
>>>
>>>> On 4/13/2024 9:19 PM, Bonita Montero wrote:
>>>
>>>>> You don't unterstand futexes. Show me your mutex basing on C++20
>>>>> futexes.
>>>>
>>>> Did you read it? using windwos futexes:
>>>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>>> Notice how it does not unlock all the time?
>>>> I can port it to c++20.
>>>
>>> Show me your mutex with a futex.
>>> It's impossible to write that without notifying *always*.
>>
>> this is a complete troll, right?
>
> You don't know futexes.
> Show me your code with a mutex basing on a futex.
>

I did. Read again, well Windows Futex:

https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ

Do you really want me to port this to c++20?

Re: C++20 futex with heavy contention slower than mutex

<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3601&group=comp.lang.c%2B%2B#3601

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 07:36:25 +0200
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7fa1$i04u$2@dont-email.me> <uu7feo$i04u$3@dont-email.me>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:36:19 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="3670850"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19qrAj2sAVOnaehWLrXn112WBHMfL3uffM="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:zeEw25v3cUUxb+yldJv/uv1KGl8=
In-Reply-To: <uvfppb$3fnnk$5@dont-email.me>
Content-Language: de-DE
 by: Bonita Montero - Sun, 14 Apr 2024 05:36 UTC

Am 14.04.2024 um 07:32 schrieb Chris M. Thomasson:
> On 4/13/2024 10:30 PM, Bonita Montero wrote:
>> Am 14.04.2024 um 07:22 schrieb Chris M. Thomasson:
>>> On 4/13/2024 9:30 PM, Bonita Montero wrote:
>>>> Am 14.04.2024 um 06:26 schrieb Chris M. Thomasson:
>>>>
>>>>> On 4/13/2024 9:19 PM, Bonita Montero wrote:
>>>>
>>>>>> You don't unterstand futexes. Show me your mutex basing on C++20
>>>>>> futexes.
>>>>>
>>>>> Did you read it? using windwos futexes:
>>>>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>>>> Notice how it does not unlock all the time?
>>>>> I can port it to c++20.
>>>>
>>>> Show me your mutex with a futex.
>>>> It's impossible to write that without notifying *always*.
>>>
>>> this is a complete troll, right?
>>
>> You don't know futexes.
>> Show me your code with a mutex basing on a futex.
>>
>
> I did. Read again, well Windows Futex:
>
> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>
> Do you really want me to port this to c++20?

Show it here with correct formatting.

Re: C++20 futex with heavy contention slower than mutex

<uvfqd2$3fnnk$6@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3602&group=comp.lang.c%2B%2B#3602

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sat, 13 Apr 2024 22:42:57 -0700
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <uvfqd2$3fnnk$6@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7feo$i04u$3@dont-email.me> <uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:42:58 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3661556"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/+NJFDn5Xhq5G42s3td0rVBQgss4j9b/s="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:yyAUCyzRw2BwVWIsgRoFMo36btI=
In-Reply-To: <uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
Content-Language: en-US
 by: Chris M. Thomasson - Sun, 14 Apr 2024 05:42 UTC

On 4/13/2024 10:36 PM, Bonita Montero wrote:
> Am 14.04.2024 um 07:32 schrieb Chris M. Thomasson:
[...]
>> I did. Read again, well Windows Futex:
>>
>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>
>> Do you really want me to port this to c++20?
>
> Show it here with correct formatting.
>

Do you mean, indentation? ;^)

Anyway, you commented in the thread I linked you to.

So, you can read my code, right?

Re: C++20 futex with heavy contention slower than mutex

<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3603&group=comp.lang.c%2B%2B#3603

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 07:46:08 +0200
Organization: A noiseless patient Spider
Lines: 22
Message-ID: <uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:46:02 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="3674107"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18aJIgaIakzjMj615PSxQm+dh21p/iDnEU="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:pVfvhVZJtgW0M/epx3dBdfseAA4=
Content-Language: de-DE
In-Reply-To: <uvfqd2$3fnnk$6@dont-email.me>
 by: Bonita Montero - Sun, 14 Apr 2024 05:46 UTC

Am 14.04.2024 um 07:42 schrieb Chris M. Thomasson:
> On 4/13/2024 10:36 PM, Bonita Montero wrote:
>> Am 14.04.2024 um 07:32 schrieb Chris M. Thomasson:
> [...]
>>> I did. Read again, well Windows Futex:
>>>
>>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>>
>>> Do you really want me to port this to c++20?
>>
>> Show it here with correct formatting.
>>
>
> Do you mean, indentation? ;^)
>
> Anyway, you commented in the thread I linked you to.
>
> So, you can read my code, right?

You don't understand futexes since you call notifying with
the slow path slow. But notifying is even not slow if there
are contenders with futexes.

Re: C++20 futex with heavy contention slower than mutex

<uvfqjp$3fnnk$7@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3604&group=comp.lang.c%2B%2B#3604

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sat, 13 Apr 2024 22:46:33 -0700
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <uvfqjp$3fnnk$7@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu7it7$iqqi$1@dont-email.me>
<uu8i9k$sqsp$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:46:34 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3661556"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19zGQmwkC1x9IYXsuMsyYv6q+vah5K3wa0="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:dSo0C8bYiv2Xtz1XUCSkQEOTF5E=
Content-Language: en-US
In-Reply-To: <uvfqd2$3fnnk$6@dont-email.me>
 by: Chris M. Thomasson - Sun, 14 Apr 2024 05:46 UTC

On 4/13/2024 10:42 PM, Chris M. Thomasson wrote:
> On 4/13/2024 10:36 PM, Bonita Montero wrote:
>> Am 14.04.2024 um 07:32 schrieb Chris M. Thomasson:
> [...]
>>> I did. Read again, well Windows Futex:
>>>
>>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>>
>>> Do you really want me to port this to c++20?
>>
>> Show it here with correct formatting.
>>
>
> Do you mean, indentation? ;^)
>
> Anyway, you commented in the thread I linked you to.
>
> So, you can read my code, right?

I use the explicit Windows API for a futex. Think of:

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitonaddress

;^)

Re: C++20 futex with heavy contention slower than mutex

<uvfqnt$3fnnk$8@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3605&group=comp.lang.c%2B%2B#3605

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sat, 13 Apr 2024 22:48:45 -0700
Organization: A noiseless patient Spider
Lines: 38
Message-ID: <uvfqnt$3fnnk$8@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 07:48:46 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3661556"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX188gocH5ZGASzRxi8u/jMu44yKifXhvCvs="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:N4yL2jFcBqfe+Qmx+qgvdLesNUo=
Content-Language: en-US
In-Reply-To: <uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
 by: Chris M. Thomasson - Sun, 14 Apr 2024 05:48 UTC

On 4/13/2024 10:46 PM, Bonita Montero wrote:
> Am 14.04.2024 um 07:42 schrieb Chris M. Thomasson:
>> On 4/13/2024 10:36 PM, Bonita Montero wrote:
>>> Am 14.04.2024 um 07:32 schrieb Chris M. Thomasson:
>> [...]
>>>> I did. Read again, well Windows Futex:
>>>>
>>>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>>>
>>>> Do you really want me to port this to c++20?
>>>
>>> Show it here with correct formatting.
>>>
>>
>> Do you mean, indentation? ;^)
>>
>> Anyway, you commented in the thread I linked you to.
>>
>> So, you can read my code, right?
>
> You don't understand futexes since you call notifying with
> the slow path slow. But notifying is even not slow if there
> are contenders with futexes.

What? I am quite sure you read this right?
____________________
void unlock()
{ if (InterlockedExchange(&m_state, 0) == 2)
{
WakeByAddressSingle(&m_state);
}
} ____________________

Take careful notice how I try to avoid a call into WakeByAddressSingle?
See? ;^o

Re: C++20 futex with heavy contention slower than mutex

<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3606&group=comp.lang.c%2B%2B#3606

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 11:25:33 +0200
Organization: A noiseless patient Spider
Lines: 55
Message-ID: <uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uu9n0g$15fv8$1@dont-email.me>
<uu9s1u$16q62$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 14 Apr 2024 11:25:27 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="3754972"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+elHtkNZ5a32WD1v3RwRTBVLe5DTVsIII="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:m++Q1gyD6g4tSuUGWX+JJu0Wfco=
In-Reply-To: <uvfqnt$3fnnk$8@dont-email.me>
Content-Language: de-DE
 by: Bonita Montero - Sun, 14 Apr 2024 09:25 UTC

Am 14.04.2024 um 07:48 schrieb Chris M. Thomasson:
> On 4/13/2024 10:46 PM, Bonita Montero wrote:
>> Am 14.04.2024 um 07:42 schrieb Chris M. Thomasson:
>>> On 4/13/2024 10:36 PM, Bonita Montero wrote:
>>>> Am 14.04.2024 um 07:32 schrieb Chris M. Thomasson:
>>> [...]
>>>>> I did. Read again, well Windows Futex:
>>>>>
>>>>> https://groups.google.com/g/comp.lang.c++/c/1MZvhswJ6DQ/m/qyaYH-i0CgAJ
>>>>>
>>>>> Do you really want me to port this to c++20?
>>>>
>>>> Show it here with correct formatting.
>>>>
>>>
>>> Do you mean, indentation? ;^)
>>>
>>> Anyway, you commented in the thread I linked you to.
>>>
>>> So, you can read my code, right?
>>
>> You don't understand futexes since you call notifying with
>> the slow path slow. But notifying is even not slow if there
>> are contenders with futexes.
>
> What? I am quite sure you read this right?
> ____________________
> void unlock()
> {
>     if (InterlockedExchange(&m_state, 0) == 2)
>     {
>         WakeByAddressSingle(&m_state);
>     }
> }
> ____________________
>
> Take careful notice how I try to avoid a call into WakeByAddressSingle?
> See? ;^o
>

This is from a benchmark of two constantly contending threads:

atomic with locker counter + std::binary_semaphore:
10.4597
atoomic with locker counter + shown futephore:
14.9949
Chris Code:
18.6445
shown atomic_bool with always wakeup:
24.7084
std::mutex:
33.8646

The numbers are in nanoseconds for a locking unlocking iteration.

Re: C++20 futex with heavy contention slower than mutex

<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3607&group=comp.lang.c%2B%2B#3607

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 15:12:17 +0200
Organization: A noiseless patient Spider
Lines: 94
Message-ID: <uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uucg28$1vucq$1@dont-email.me>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 15:12:11 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="3842542"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19wp7eoTV9knHiyQI2ZE+Wse0ua4D09GX0="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:Stz13vJbyLFcnBH9mliBmqFgo1s=
Content-Language: de-DE
In-Reply-To: <uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
 by: Bonita Montero - Sun, 14 Apr 2024 13:12 UTC

That's my code:

#include <iostream>
#include <mutex>
#include <thread>
#include <chrono>
#include <semaphore>
#include <algorithm>
#include <vector>

using namespace std;
using namespace chrono;

int main()
{ using kv = pair<char const *, double>;
vector<kv> results;
auto bench = [&]( char const *what, auto fn )
{
constexpr size_t ROUNDS = 10'000'000;
atomic_int64_t tSum = 0;
auto thr = [&]()
{
auto start = high_resolution_clock::now();
for( size_t r = ROUNDS; r; --r )
fn();
tSum.fetch_add( duration_cast<nanoseconds>(
high_resolution_clock::now() - start ).count() );
};
jthread jtA( thr ), jtB( thr );
jtA.join(), jtB.join();
results.emplace_back( what, tSum / ((double)ROUNDS * 2.0) );
};
// atomic coutner with futex-semaphore
atomic_uint32_t
lockCounter( 0 ),
futSem( 0 );
bench( "atomic coutner with futex-semaphore", [&]
{
if( lockCounter.fetch_add( 1, memory_order_acquire ) > 0 )
for( uint32_t before = futSem.load(
memory_order_relaxed ); ; )
if( !before )
futSem.wait( 0, memory_order_relaxed ),
before = futSem.load( memory_order_relaxed );
else if( futSem.compare_exchange_strong( before,
before - 1, memory_order_acquire, memory_order_relaxed ) ) [[likely]]
break;
if( lockCounter.fetch_sub( 1, memory_order_relaxed ) > 1 )
for( uint32_t before = futSem.load(
memory_order_relaxed ); ; )
if( futSem.compare_exchange_strong( before, before
+ 1, memory_order_release, memory_order_relaxed ) )
{
futSem.notify_one();
break;
}
} );
// std::mutex
mutex mtx;
bench( "std::mutex", [&] { mtx.lock(), mtx.unlock(); });
// atomic coutner with a binary_semaphore
binary_semaphore sem( 0 );
bench( "atomic coutner with binary_semaphore", [&]
{
if( lockCounter.fetch_add( 1, memory_order_acquire ) > 0 )
sem.acquire();
if( lockCounter.fetch_sub( 1, memory_order_release ) > 1 )
sem.release();
} );
// xchg-mutex and always wakeup
atomic_bool lockFlag( false );
bench( "xchg-mutex and always wakeup", [&]
{
while( lockFlag.exchange( true, memory_order_acquire ) )
lockFlag.wait( true, memory_order_relaxed );
lockFlag.store( false, memory_order_release );
lockFlag.notify_one();
} );
// Chris' mutex
atomic_int lockState( 0 );
bench( "Chris' mutex", [&]
{
if( lockState.exchange( 1, memory_order_acquire ) )
while( lockState.exchange( 2, memory_order_acquire ) )
lockState.wait( 2, memory_order_acquire );
if( lockState.exchange( 0, memory_order_release ) == 2 )
lockState.notify_one();
} );
sort( results.begin(), results.end(), []( kv &lhs, kv &rhs ) {
return lhs.second < rhs.second; } );
for( kv &result : results )
cout << result.first << ": " << result.second << endl;
}

Re: C++20 futex with heavy contention slower than mutex

<uvh97q$3pep9$3@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3608&group=comp.lang.c%2B%2B#3608

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 12:02:18 -0700
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <uvh97q$3pep9$3@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 21:02:19 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3980073"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1++WeLmASo227k25GDV4HqNX5QYge4YQ9s="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:ac0Za4Vc5G7J60bDPgqJ7hHIF98=
In-Reply-To: <uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
Content-Language: en-US
 by: Chris M. Thomasson - Sun, 14 Apr 2024 19:02 UTC

On 4/14/2024 6:12 AM, Bonita Montero wrote:
> That's my code:
[...]

Might as well throw my semaphore into the mix:

https://vorbrodt.blog/2019/02/05/fast-semaphore/

I will code up a little program, most likely today, to check out those
neat C++20 futexes.

Re: C++20 futex with heavy contention slower than mutex

<uvh9f0$3pep9$4@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3609&group=comp.lang.c%2B%2B#3609

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 12:06:07 -0700
Organization: A noiseless patient Spider
Lines: 28
Message-ID: <uvh9f0$3pep9$4@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
<uvh97q$3pep9$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 21:06:08 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3980073"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+L5Iihqi78ppz2iTdIiIEHvrMWKyzKqkw="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:oCsq00KsQKpM15/FnA8zDAPPV1I=
Content-Language: en-US
In-Reply-To: <uvh97q$3pep9$3@dont-email.me>
 by: Chris M. Thomasson - Sun, 14 Apr 2024 19:06 UTC

On 4/14/2024 12:02 PM, Chris M. Thomasson wrote:
> On 4/14/2024 6:12 AM, Bonita Montero wrote:
>> That's my code:
> [...]
>
> Might as well throw my semaphore into the mix:

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Error! It's not my semaphore!

> https://vorbrodt.blog/2019/02/05/fast-semaphore/
>
> I will code up a little program, most likely today, to check out those
> neat C++20 futexes.
>

OOPS! I misstated, I did not create this algo. Afaict, the original can
be found here:

https://www.haiku-os.org/legacy-docs/benewsletter/Issue1-26.html

Sorry everybody. Now, here is _my_ rwlock:

https://vorbrodt.blog/2019/02/14/read-write-mutex

All me! :^)

Re: C++20 futex with heavy contention slower than mutex

<uvh9mr$3pep9$5@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3610&group=comp.lang.c%2B%2B#3610

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 12:10:19 -0700
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <uvh9mr$3pep9$5@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uudkd7$2bb0o$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 14 Apr 2024 21:10:20 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6e9a1c95344c04c925332ebe6e86d001";
logging-data="3980073"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19TMPgKJa4yEfmnvSXpAykjunCRYeETECY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:2DpuJvIlvZYldbV+smDJhOauG1U=
In-Reply-To: <uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
Content-Language: en-US
 by: Chris M. Thomasson - Sun, 14 Apr 2024 19:10 UTC

On 4/14/2024 6:12 AM, Bonita Montero wrote:
> That's my code:
>
[...]
>     atomic_int lockState( 0 );
>     bench( "Chris' mutex", [&]
>         {
>             if( lockState.exchange( 1, memory_order_acquire ) )
>                 while( lockState.exchange( 2, memory_order_acquire ) )

>                     lockState.wait( 2, memory_order_acquire );

No need for memory_order_acquire on the wait. Relaxed will do.

>             if( lockState.exchange( 0, memory_order_release ) == 2 )
>                 lockState.notify_one();
>         } );
>     sort( results.begin(), results.end(), []( kv &lhs, kv &rhs ) {
> return lhs.second < rhs.second; } );
>     for( kv &result : results )
>         cout << result.first << ": " << result.second << endl;
> }

Re: C++20 futex with heavy contention slower than mutex

<uvhfvk$3r04b$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3612&group=comp.lang.c%2B%2B#3612

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 22:57:30 +0200
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <uvhfvk$3r04b$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uudkss$2bcg5$1@dont-email.me>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
<uvh97q$3pep9$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 14 Apr 2024 22:57:24 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="cfb5acddb19935eb382fc092bd8e4e16";
logging-data="4030603"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/q/1QTfGmR9DSRkrlsq9Z3BJfuvNOjTxg="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:/Q6ApPbJzeHFCgjMgzLMfzNjOGo=
In-Reply-To: <uvh97q$3pep9$3@dont-email.me>
Content-Language: de-DE
 by: Bonita Montero - Sun, 14 Apr 2024 20:57 UTC

Am 14.04.2024 um 21:02 schrieb Chris M. Thomasson:
> On 4/14/2024 6:12 AM, Bonita Montero wrote:
>> That's my code:
> [...]
>
> Might as well throw my semaphore into the mix:
>
> https://vorbrodt.blog/2019/02/05/fast-semaphore/
>
> I will code up a little program, most likely today, to check out those
> neat C++20 futexes.
>

A semaphore with a mutex, you're funny ...
That ain't fast.

Re: C++20 futex with heavy contention slower than mutex

<uvi6jh$2ubm$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3613&group=comp.lang.c%2B%2B#3613

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 20:23:28 -0700
Organization: A noiseless patient Spider
Lines: 64
Message-ID: <uvi6jh$2ubm$1@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uudstq$2d5kp$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
<uvh97q$3pep9$3@dont-email.me>
<uvhfvk$3r04b$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 15 Apr 2024 05:23:29 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="7d60a1f57502b9704c1d77fb39f6ec8f";
logging-data="96630"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/799jyIP9LiHqiotXHnSO/V8ZCciOF4EA="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:5nh9EzMej5V6E3Y0spTVj7Vz8g0=
In-Reply-To: <uvhfvk$3r04b$1@raubtier-asyl.eternal-september.org>
Content-Language: en-US
 by: Chris M. Thomasson - Mon, 15 Apr 2024 03:23 UTC

On 4/14/2024 1:57 PM, Bonita Montero wrote:
> Am 14.04.2024 um 21:02 schrieb Chris M. Thomasson:
>> On 4/14/2024 6:12 AM, Bonita Montero wrote:
>>> That's my code:
>> [...]
>>
>> Might as well throw my semaphore into the mix:
>>
>> https://vorbrodt.blog/2019/02/05/fast-semaphore/
>>
>> I will code up a little program, most likely today, to check out those
>> neat C++20 futexes.
>>
>
> A semaphore with a mutex, you're funny ...
> That ain't fast.

The fast_semaphore::semaphore is meant to be a kernel semaphore. So, a
Windows one will work. A Linux one will work, and the portable mutex
condvar semaphore impl emulation will work. This semaphore is fast wrt
its fast paths. Btw, you have heard of the benaphore before, right?

https://www.haiku-os.org/legacy-docs/benewsletter/Issue1-26.html#Engineering1-26

Its been there for a while... ;^) It's something that every threading
nerd should know about. Remember when you called me a nerd several times
in the past? lol. ;^)

Anyway, take a close look at the fast paths vs the slow paths:

https://pastebin.com/raw/Q7p6e7Xc

_________________
class fast_semaphore
{ public:
fast_semaphore(int count) noexcept
: m_count(count), m_semaphore(0) {}

void post()
{
std::atomic_thread_fence(std::memory_order_release);
int count = m_count.fetch_add(1, std::memory_order_relaxed);
if (count < 0)
m_semaphore.post();
}

void wait()
{
int count = m_count.fetch_sub(1, std::memory_order_relaxed);
if (count < 1)
m_semaphore.wait();
std::atomic_thread_fence(std::memory_order_acquire);
}

private:
std::atomic<int> m_count;
semaphore m_semaphore;
};
_________________

Re: C++20 futex with heavy contention slower than mutex

<uvi6ol$2ubm$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3614&group=comp.lang.c%2B%2B#3614

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 20:26:13 -0700
Organization: A noiseless patient Spider
Lines: 22
Message-ID: <uvi6ol$2ubm$2@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
<uvh97q$3pep9$3@dont-email.me>
<uvhfvk$3r04b$1@raubtier-asyl.eternal-september.org>
<uvi6jh$2ubm$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 15 Apr 2024 05:26:14 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="7d60a1f57502b9704c1d77fb39f6ec8f";
logging-data="96630"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Ji5Hn3MGCbu6YHc1XvGDaf/kgOoApRRY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:lYnOvvUGl4Bu7lJ/MFiQXvqiowU=
In-Reply-To: <uvi6jh$2ubm$1@dont-email.me>
Content-Language: en-US
 by: Chris M. Thomasson - Mon, 15 Apr 2024 03:26 UTC

On 4/14/2024 8:23 PM, Chris M. Thomasson wrote:
> On 4/14/2024 1:57 PM, Bonita Montero wrote:
>> Am 14.04.2024 um 21:02 schrieb Chris M. Thomasson:
>>> On 4/14/2024 6:12 AM, Bonita Montero wrote:
>>>> That's my code:
>>> [...]
>>>
>>> Might as well throw my semaphore into the mix:
>>>
>>> https://vorbrodt.blog/2019/02/05/fast-semaphore/
>>>
>>> I will code up a little program, most likely today, to check out
>>> those neat C++20 futexes.
>>>
>>
>> A semaphore with a mutex, you're funny ...
>> That ain't fast.
[...]

I think you might have a problem differentiating a fast-path from a
slow-path... Humm...

Re: C++20 futex with heavy contention slower than mutex

<uvi9lk$3huv$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3615&group=comp.lang.c%2B%2B#3615

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Mon, 15 Apr 2024 06:15:55 +0200
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <uvi9lk$3huv$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uudt4f$2d7ic$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
<uvh97q$3pep9$3@dont-email.me>
<uvhfvk$3r04b$1@raubtier-asyl.eternal-september.org>
<uvi6jh$2ubm$1@dont-email.me> <uvi6ol$2ubm$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 15 Apr 2024 06:15:49 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="24d411e16b429850cffc544d14846258";
logging-data="116703"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+bTv4jbEMpy4vEe0YWx8A8w2t2+urLeX0="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:Ag6awyNtPvKOVAVEGWtHf00CuGA=
In-Reply-To: <uvi6ol$2ubm$2@dont-email.me>
Content-Language: de-DE
 by: Bonita Montero - Mon, 15 Apr 2024 04:15 UTC

Am 15.04.2024 um 05:26 schrieb Chris M. Thomasson:
> On 4/14/2024 8:23 PM, Chris M. Thomasson wrote:
>> On 4/14/2024 1:57 PM, Bonita Montero wrote:
>>> Am 14.04.2024 um 21:02 schrieb Chris M. Thomasson:
>>>> On 4/14/2024 6:12 AM, Bonita Montero wrote:
>>>>> That's my code:
>>>> [...]
>>>>
>>>> Might as well throw my semaphore into the mix:
>>>>
>>>> https://vorbrodt.blog/2019/02/05/fast-semaphore/
>>>>
>>>> I will code up a little program, most likely today, to check out
>>>> those neat C++20 futexes.
>>>>
>>>
>>> A semaphore with a mutex, you're funny ...
>>> That ain't fast.
> [...]
>
> I think you might have a problem differentiating a fast-path from a
> slow-path... Humm...
>

Absolutely not, but you consider a futex wake as slow.

Re: C++20 futex with heavy contention slower than mutex

<uvicet$404o$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3616&group=comp.lang.c%2B%2B#3616

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Sun, 14 Apr 2024 22:03:24 -0700
Organization: A noiseless patient Spider
Lines: 34
Message-ID: <uvicet$404o$1@dont-email.me>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uuf1r3$2lqho$1@dont-email.me>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
<uvh97q$3pep9$3@dont-email.me>
<uvhfvk$3r04b$1@raubtier-asyl.eternal-september.org>
<uvi6jh$2ubm$1@dont-email.me> <uvi6ol$2ubm$2@dont-email.me>
<uvi9lk$3huv$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 15 Apr 2024 07:03:25 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="7d60a1f57502b9704c1d77fb39f6ec8f";
logging-data="131224"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+YFZ3H1JfKGNeWrUs1Eccms0FPR6But5c="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:ULadj2dCwssOhESFW24RuE4aUQA=
In-Reply-To: <uvi9lk$3huv$1@raubtier-asyl.eternal-september.org>
Content-Language: en-US
 by: Chris M. Thomasson - Mon, 15 Apr 2024 05:03 UTC

On 4/14/2024 9:15 PM, Bonita Montero wrote:
> Am 15.04.2024 um 05:26 schrieb Chris M. Thomasson:
>> On 4/14/2024 8:23 PM, Chris M. Thomasson wrote:
>>> On 4/14/2024 1:57 PM, Bonita Montero wrote:
>>>> Am 14.04.2024 um 21:02 schrieb Chris M. Thomasson:
>>>>> On 4/14/2024 6:12 AM, Bonita Montero wrote:
>>>>>> That's my code:
>>>>> [...]
>>>>>
>>>>> Might as well throw my semaphore into the mix:
>>>>>
>>>>> https://vorbrodt.blog/2019/02/05/fast-semaphore/
>>>>>
>>>>> I will code up a little program, most likely today, to check out
>>>>> those neat C++20 futexes.
>>>>>
>>>>
>>>> A semaphore with a mutex, you're funny ...
>>>> That ain't fast.
>> [...]
>>
>> I think you might have a problem differentiating a fast-path from a
>> slow-path... Humm...
>>
>
> Absolutely not, but you consider a futex wake as slow.
>

Yes. I consider a futex notify and wake as "slow" paths. One should
strive to avoid them. I don't know about the current impl of futex wrt
Linux and Windows. I just treat them as kernel calls that should be on
the slow path. Not on the fast path. The damn thing might even lock an
internal hashed mutex on the address for all I know wrt an unknown impl
of a futex.

Re: C++20 futex with heavy contention slower than mutex

<uvigvt$4r0r$1@raubtier-asyl.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3617&group=comp.lang.c%2B%2B#3617

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!raubtier-asyl.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: comp.lang.c++
Subject: Re: C++20 futex with heavy contention slower than mutex
Date: Mon, 15 Apr 2024 08:20:51 +0200
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <uvigvt$4r0r$1@raubtier-asyl.eternal-september.org>
References: <uu6eqs$ab8u$1@raubtier-asyl.eternal-september.org>
<uufr1r$2v8qo$1@raubtier-asyl.eternal-september.org>
<uvc8c4$2ik6i$1@dont-email.me>
<uvclf0$2l4bk$1@raubtier-asyl.eternal-september.org>
<uvem9v$35hth$1@dont-email.me>
<uvflfv$3f7ep$1@raubtier-asyl.eternal-september.org>
<uvflt5$3fa23$1@dont-email.me>
<uvfm5m$3fblc$1@raubtier-asyl.eternal-september.org>
<uvfp6l$3fnnk$4@dont-email.me>
<uvfpmd$3fuid$1@raubtier-asyl.eternal-september.org>
<uvfppb$3fnnk$5@dont-email.me>
<uvfq0j$3g0q2$1@raubtier-asyl.eternal-september.org>
<uvfqd2$3fnnk$6@dont-email.me>
<uvfqiq$3g3vr$1@raubtier-asyl.eternal-september.org>
<uvfqnt$3fnnk$8@dont-email.me>
<uvg7e6$3iius$1@raubtier-asyl.eternal-september.org>
<uvgkna$3l8fe$1@raubtier-asyl.eternal-september.org>
<uvh97q$3pep9$3@dont-email.me>
<uvhfvk$3r04b$1@raubtier-asyl.eternal-september.org>
<uvi6jh$2ubm$1@dont-email.me> <uvi6ol$2ubm$2@dont-email.me>
<uvi9lk$3huv$1@raubtier-asyl.eternal-september.org>
<uvicet$404o$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 15 Apr 2024 08:20:45 +0200 (CEST)
Injection-Info: raubtier-asyl.eternal-september.org; posting-host="24d411e16b429850cffc544d14846258";
logging-data="158747"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/7OhXjFshNduGZIcwfeCu4hEZZqMMkzvY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:7UMMsYSjeZMSEEchzn/kP893t1E=
In-Reply-To: <uvicet$404o$1@dont-email.me>
Content-Language: de-DE
 by: Bonita Montero - Mon, 15 Apr 2024 06:20 UTC

Am 15.04.2024 um 07:03 schrieb Chris M. Thomasson:

> On 4/14/2024 9:15 PM, Bonita Montero wrote:

>> Absolutely not, but you consider a futex wake as slow.

> Yes. I consider a futex notify and wake as "slow" paths.

I've mentioned that a futex wake with no contenders is 1.7ns or about
10 clock cycles on my Zen4-CPU; that's nothing worth to think about.


devel / comp.lang.c++ / Re: C++20 futex with heavy contention slower than mutex

Pages:123
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor