tagged [volatile]

What is the difference between atomic / volatile / synchronized?

What is the difference between atomic / volatile / synchronized? How do atomic / volatile / synchronized work internally? What is the difference between the following code blocks? Code 1 Code 2 ``` pr...

Volatile variables

Volatile variables I recently had an interview with a software company who asked me the following question: > Can you describe to me what adding in front of variables does? Can you explain to me why i...

7 Dec at 21:13

Volatile Violates its main job?

Volatile Violates its main job? According to [MSDN](http://msdn.microsoft.com/en-us/library/x13ttww7%28v=vs.100%29.aspx): > The volatile keyword indicates that a field might be modified by multiple t...

C# variable freshness

C# variable freshness Suppose I have a member variable in a class (with atomic read/write data type): And later I create a task to set it to true: I don't care when exactly m_Done will be set to true....

Volatile fields in C#

Volatile fields in C# From the specification 10.5.3 Volatile fields: --- The type of a volatile field must be one of the following: - A reference-type.- The type byte, sbyte, short, ushort, int, uint...

25 Feb at 03:41

understanding of Volatile.Read/Write

understanding of Volatile.Read/Write I'm trying to understand the C# Volatile class. As i read: - The `Volatile.Write` method forces the value in location to be written to at the point of the call. In...

19 Jun at 12:52

Why is (or isn't) setting fields in a constructor thread-safe?

Why is (or isn't) setting fields in a constructor thread-safe? Let's say you have a simple class like this: I could use this class in a multi-threaded manner: ``` MyClass value = n

Why doesn't C# volatile protect write-read reordering?

Why doesn't C# volatile protect write-read reordering? According to [this online book](http://www.albahari.com/threading/part4.aspx), the `volatile` keyword in C# does not protect against reordering W...

20 Jun at 09:12

Does Interlocked.CompareExchange use a memory barrier?

Does Interlocked.CompareExchange use a memory barrier? I'm reading Joe Duffy's post about [Volatile reads and writes, and timeliness](http://www.bluebytesoftware.com/blog/2008/06/13/VolatileReadsAndWr...

C# volatile variable: Memory fences VS. caching

C# volatile variable: Memory fences VS. caching So I researched the topic for quite some time now, and I think I understand the most important concepts like the . However, I haven't found a satisfacto...

22 Jun at 07:32

Volatile and Thread.MemoryBarrier in C#

Volatile and Thread.MemoryBarrier in C# To implement a for multithreading application I used `volatile` variables, : The `volatile` keyword is simply used to make sure that all threads see the most up...

Can I avoid using locks for my seldomly-changing variable?

Can I avoid using locks for my seldomly-changing variable? I've been reading Joe Duffy's book on Concurrent programming. I have kind of an academic question about lockless threading. First: I know tha...

Does Monitor.Wait ensure that fields are re-read?

Does Monitor.Wait ensure that fields are re-read? It is generally accepted (I believe!) that a `lock` will force any values from fields to be reloaded (essentially acting as a memory-barrier or fence ...

Does Interlocked guarantee visibility to other threads in C# or do I still have to use volatile?

Does Interlocked guarantee visibility to other threads in C# or do I still have to use volatile? I've been reading the answer to a [similar question](https://stackoverflow.com/questions/1701216/is-the...

How to guarantee that an update to "reference type" item in Array is visible to other threads?

How to guarantee that an update to "reference type" item in Array is visible to other threads? ``` private InstrumentInfo[] instrumentInfos = new InstrumentInfo[Constants.MAX_INSTRUMENTS_NUMBER_IN_SYS...

Difference between Interlocked.Exchange and Volatile.Write?

Difference between Interlocked.Exchange and Volatile.Write? What is the difference between `Interlocked.Exchange` and `Volatile.Write`? Both methods update value of some variable. Can someone summariz...

Are volatile variables useful? If yes then when?

Are volatile variables useful? If yes then when? Answering [this question](https://stackoverflow.com/questions/20339725/executing-weka-classification-in-c-sharp-in-parallel/20339822#20339822) made me ...

23 May at 12:8

Is the 'volatile' keyword still broken in C#?

Is the 'volatile' keyword still broken in C#? Joe Albahari has a [great series](http://www.albahari.com/threading/) on multithreading that's a must read and should be known by heart for anyone doing C...

2 Dec at 18:27

Why not volatile on System.Double and System.Long?

Why not volatile on System.Double and System.Long? A question like mine has been [asked](https://stackoverflow.com/questions/531759/c-volatile-double), but mine is a bit different. The question is, "W...

23 May at 12:34

c# - Volatile keyword usage vs lock

c# - Volatile keyword usage vs lock I've used volatile where I'm not sure it is necessary. I was pretty sure a lock would be overkill in my situation. Reading this thread (Eric Lippert comment) make m...

Difference between Threading.Volatile.Read(Int64) and Threading.Interlocked.Read(Int64)?

Difference between Threading.Volatile.Read(Int64) and Threading.Interlocked.Read(Int64)? What is the difference, if any, of the `Read(Int64)` method of the .NET system classes [System.Threading.Volati...

.NET JIT compiler volatile optimizations

.NET JIT compiler volatile optimizations [https://msdn.microsoft.com/en-us/magazine/jj883956.aspx](https://msdn.microsoft.com/en-us/magazine/jj883956.aspx) > Consider the polling loop pattern:``` priv...

1 Oct at 13:29

Where to places fences/memory barriers to guarantee a fresh read/committed writes?

Where to places fences/memory barriers to guarantee a fresh read/committed writes? Like many other people, I've always been confused by volatile reads/writes and fences. So now I'm trying to fully und...

Variable freshness guarantee in .NET (volatile vs. volatile read)

Variable freshness guarantee in .NET (volatile vs. volatile read) I have read many contradicting information (msdn, SO etc.) about volatile and VoletileRead (ReadAcquireFence). I understand the memory...

Is the popular "volatile polled flag" pattern broken?

Is the popular "volatile polled flag" pattern broken? Suppose that I want to use a boolean status flag for cooperative cancellation between threads. (I realize that one should preferably use `Cancella...