Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Ok, your 3 quotes are not incompatible. But let's go a bit down to the implementation:</p> <p>Every waitable object has a boolean value attached to it, named the <em>signalled state</em>, that is used to wait for that object; if the object is <em>signalled</em>, then the wait functions will <strong>not</strong> wait for it; if the object is <em>non-signalled</em>, then the wait functions <strong>will</strong> wait for it.</p> <p>Now, how does this apply to a particular type of object? That depends on the objects nature and specifically on the semantics associated to waiting for it. Actually, the signalled state is defined in terms of wait condition. the For example (see the docs for details):</p> <ul> <li>A mutex is signalled when it is not owned.</li> <li>An process/thread is signalled when it has finished.</li> <li>A semaphore is signalled when its count is greater than 0.</li> <li>A waitable timer is signalled when it has expired.</li> </ul> <p>You might like better if a mutex were signalled when owned, but actually it is when not owned. That's necessary to make the wait functions do the right thing.</p> <p>And what about the events? Well, they are somewhat simple objects, you can signal and de-signal them at will, so the signal state has no additional meaning:</p> <ul> <li>signalled: Threads will not wait for it.</li> <li>non-signalled: Threads will wait for it.</li> </ul> <p>Events also have this <code>SignalPulse</code> and <code>AutoReset</code> things that are a bit peculiar (and IME practically impossible to use right).</p> <p>Now, let's look at your quotes:</p> <blockquote> <p>A signaled state indicates a resource is available for a process or thread to use it. A not-signaled state indicates the resource is in use.</p> </blockquote> <p>Actually, that is an interpretation. Usually there is a resource you are trying to arbitrate, and usually you wait if-and-only-if that resource is in use, so it is making the equivalence between resource-in-use and wait-for-resource. But that's not a technical requiremente, just a usual use-case.</p> <blockquote> <p>An object that is in the signaled state will not cause a thread that is waiting on the object to block and object that is not in the signaled state will cause any thread that waits on that object to block until the object again becomes signaled.</p> </blockquote> <p>Correct and to the point!</p> <blockquote> <p>An event is in signaled state means that it has the capacity to release the threads waiting for this event to be signaled. An event is in non signaled state means that it will not release any thread that is waiting for this particular event.</p> </blockquote> <p>I find this wording a bit confusing... but it adds nothing over the previous one.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload