Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #120021

Re: counting_semaphore question

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c++
Subject Re: counting_semaphore question
Date 2024-09-11 16:23 +0200
Organization A noiseless patient Spider
Message-ID <vbs95s$3l7ms$1@dont-email.me> (permalink)
References <vbrqjj$3hvsd$1@dont-email.me> <vbs01c$3j5mc$1@raubtier-asyl.eternal-september.org> <vbs0tm$3jf62$1@dont-email.me> <vbs1al$3jgnp$1@raubtier-asyl.eternal-september.org> <vbs2fm$3jp23$1@dont-email.me>

Show all headers | View raw


On 11/09/2024 14:29, Muttley@dastardlyhq.com wrote:
> On Wed, 11 Sep 2024 14:10:05 +0200
> Bonita Montero <Bonita.Montero@gmail.com> boringly babbled:
>> Am 11.09.2024 um 14:03 schrieb Muttley@dastardlyhq.com:
>>
>>> What upper limit? The max number of threads allowed in the protected section
>>> above is 2, not 10. Or do you mean it'll only count up to 10 threads waiting
>>> and ignore any beyond that? What happens if thread 11 comes along?
>>
>> The static parmeter is the maximum counter and the the two is the
>> initial counter. So two threads can currently acquire that semaphore.
> 
> Sorry, I still don't get it. What do you mean by maximum counter?
> 
> Maximum threads that can wait on the semaphore and 11 gets an error?
> Maximum threads that can ever access the protected section and after 10 have
> accessed it the section is blocked to all threads?
> 

You are talking about a counting semaphore here - the number will be the 
maximum value of the count.  (The actual maximum value could be bigger 
than the template parameter, but not smaller than it.)  If this maximum 
value is 10, then you can acquire the semaphore 10 times without 
blocking - any future acquires will block until there are releases.

Semaphores can be acquired and released by any threads - one thread can 
acquire often, another thread can release them, or you can have any 
combination.  They are not used for protection sections or data - they 
are used as signalling mechanisms.  One or more "producer" thread might 
make objects, and one or more "consumer" threads used them, in which 
case your 10 here is the maximum number of these objects that will be 
buffered up at a time.

> 
>>> Condition variables IMO are unintuitive (eg the internal state change from
>>> waiting on condition variable to waiting on mutex is completely invisible)
>>> and hence very prone to logical bugs. I tend to avoid them where possible.
>>
>> If you have a producer-consumer-pattern condition variables are the most
>> efficient way to handle this pattern.
> 
> Efficient maybe, but the code can be obtuse and debugging a pain.
> 

<https://en.cppreference.com/w/cpp/thread/counting_semaphore>

This suggests that semaphores may be an alteranative to condition 
variables but with better performance.  (Individual implementations may 
vary, of course.)

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

counting_semaphore question Muttley@dastardlyhq.com - 2024-09-11 10:15 +0000
  Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-11 13:48 +0200
    Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-11 12:03 +0000
      Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-11 14:10 +0200
        Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-11 12:29 +0000
          Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-11 15:54 +0200
            Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-11 14:12 +0000
          Re: counting_semaphore question David Brown <david.brown@hesbynett.no> - 2024-09-11 16:23 +0200
            Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-16 14:22 -0700
              Re: counting_semaphore question David Brown <david.brown@hesbynett.no> - 2024-09-17 09:22 +0200
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-17 11:56 -0700
                Re: counting_semaphore question David Brown <david.brown@hesbynett.no> - 2024-09-18 09:32 +0200
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-19 12:57 +0200
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-19 13:01 +0200
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-19 12:09 -0700
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-19 13:27 -0700
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-19 13:30 -0700
          Re: counting_semaphore question Ben Bacarisse <ben@bsb.me.uk> - 2024-09-12 11:25 +0100
            Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-12 11:00 +0000
              Re: counting_semaphore question Andrey Tarasevich <andreytarasevich@hotmail.com> - 2024-09-12 07:34 -0700
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-12 14:53 +0000
                Re: counting_semaphore question David Brown <david.brown@hesbynett.no> - 2024-09-13 08:39 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-13 07:26 +0000
                Re: counting_semaphore question David Brown <david.brown@hesbynett.no> - 2024-09-13 12:54 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-13 13:21 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-13 15:29 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-13 13:41 +0000
                Re: counting_semaphore question David Brown <david.brown@hesbynett.no> - 2024-09-15 17:33 +0200
                Re: counting_semaphore question David Brown <david.brown@hesbynett.no> - 2024-09-13 16:46 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-13 14:59 +0000
                Re: counting_semaphore question Andrey Tarasevich <andreytarasevich@hotmail.com> - 2024-09-13 07:43 -0700
        Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-11 13:51 -0700
          Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-12 04:21 +0200
            Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-12 11:57 -0700
              Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-13 14:29 +0200
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-13 12:44 -0700
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-14 01:43 +0200
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-13 22:21 -0700
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-14 12:07 -0700
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-14 09:18 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-14 11:40 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-14 10:58 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-14 13:15 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-14 15:13 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-14 17:26 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-14 15:48 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-14 17:50 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-14 15:55 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-14 17:57 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-15 09:05 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-15 11:48 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-15 09:52 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-15 14:50 +0200
                Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-15 15:28 +0000
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-16 05:02 +0200
                Re: counting_semaphore question scott@slp53.sl.home (Scott Lurndal) - 2024-09-15 16:27 +0000
                Re: counting_semaphore question scott@slp53.sl.home (Scott Lurndal) - 2024-09-15 16:26 +0000
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-14 12:12 -0700
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-14 17:21 -0700
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-15 07:11 +0200
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-14 22:20 -0700
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-15 09:35 +0200
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-15 12:59 -0700
                Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-16 05:04 +0200
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-16 13:30 -0700
                Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-14 12:09 -0700
  Re: counting_semaphore question Andrey Tarasevich <andreytarasevich@hotmail.com> - 2024-09-11 07:37 -0700
    Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-11 15:03 +0000
      Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-11 17:27 +0200
        Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-11 16:04 +0000
          Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-11 18:16 +0200
            Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-11 18:16 +0000
              Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-12 04:20 +0200
          Re: counting_semaphore question "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2024-09-12 13:00 -0700
      Re: counting_semaphore question Andrey Tarasevich <andreytarasevich@hotmail.com> - 2024-09-11 20:56 -0700
        Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-12 07:43 +0000
          Re: counting_semaphore question David Brown <david.brown@hesbynett.no> - 2024-09-12 13:30 +0200
            Re: counting_semaphore question Muttley@dastardlyhq.com - 2024-09-12 14:48 +0000
          Re: counting_semaphore question Bonita Montero <Bonita.Montero@gmail.com> - 2024-09-12 15:38 +0200
          Re: counting_semaphore question Andrey Tarasevich <andreytarasevich@hotmail.com> - 2024-09-12 07:05 -0700

csiph-web