Shared - Another Thread

Stanislav Blinov stanislav.blinov at gmail.com
Sat Oct 20 13:56:45 UTC 2018


On Saturday, 20 October 2018 at 02:09:56 UTC, Dominikus Dittes 
Scherkl wrote:
> On Saturday, 20 October 2018 at 00:46:36 UTC, Nicholas Wilson 
> wrote:
>> Mutable = value may change
>> const = I will not change the value
>> immutable = the value will not change
>>
>> unshared = I (well the current thread) owns the reference
>> shared = reference not owned, no unordered access, no 
>> (unordered) writes
>> threadsafe = ???
> unshared = the current thread owns the reference
> threadsafe = I guarantee no race conditions or deadlocks will 
> occur
> shared = every thread may have references

Exactly, "thredsafe" in nothing more than a contract between 
programmers.
When you have "const" data, it is trivial for the compiler to 
enforce that: it just doesn't allow you to mutate it. But the 
compiler cannot reason about whether your logic is "threadsafe" 
or not, there can be no static enforcement of "thread-safety". It 
only holds as an implicit contract between programmers: the 
authors of data and functions, and the users of that data and 
functions, i.e. the API and the callers.


More information about the Digitalmars-d mailing list