Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    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. 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.
    1. COPutting a memory barrier in Pulse() wouldn't address the variables that are checked to see if Pulse() should be called. You know: `lock (someLock) { if (someVariable) Monitor.Pulse(); someVariable = false; }` It is actually possible to build a lightweight signaling mechanism with memory barriers alone... A memory barrier alone also wouldn't assure the (effective) atomicity of multiple operations inside the lock.
      singulars
    2. COThis link doesn't smell very good, for example: ` X86 and X64 processors always apply acquire-fences to reads and release-fences to writes` is wrong. he is confusing the MESI protocol and the flush of read writes operation from the instruction pipeline. c.f. intel documentation of XADD and other Locked prefix instructions. http://www.codemaestro.com/reviews/8
      singulars
    3. CO@RickNZ: If the code that does a pulse sets a flag which could be cleared by code in the wait loop, the code that calls pulse needs to acquire the lock before setting those flags. It would seem semantically useful, however, to have a version of pulse which did not need to be within the lock, but which--if the lock is busy--would set a flag so that if the current holder of the lock calls wait *before exiting the lock* it would act as though it was pulsed immediately. For example, suppose a wrapper object is supposed to encapsulate a thread. If the wrapper is abandoned, the thread...
      singulars
 

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