how to assign to shared obj.systime?

Steven Schveighoffer schveiguy at gmail.com
Fri Jul 10 19:19:11 UTC 2020


On 7/10/20 2:30 PM, mw wrote:
> On Friday, 10 July 2020 at 17:35:56 UTC, Steven Schveighoffer wrote:
>> Mark your setTime as shared, then cast away shared (as you don't need 
>> atomics once it's locked), and assign:
>>
>> synchronized setTime(ref SysTime t) shared {
>>     (cast()this).time = t;
>> }
> 
> I know I can make it work by casting, my question is:
> 
> we had a lock on the owning shared object already, WHY we still need the 
> cast to make it compile.
> 

Because locking isn't that simple. There is no "one size fits all" 
locking scheme that can be enforced by the language. So the best option 
is to make sure if you shoot yourself in the foot, it's your fault, and 
not D's.

-Steve


More information about the Digitalmars-d-learn mailing list