On Nov 11, 2012, at 6:30 PM, Walter Bright <newshou...@digitalmars.com> wrote: > > To make a shared type work in an algorithm, you have to: > > 1. ensure single threaded access by aquiring a mutex > 2. cast away shared > 3. operate on the data > 4. cast back to shared > 5. release the mutex
So what happens if you pass a reference to the now non-shared object to a function that caches a local reference to it? Half the point of the attribute is to protect us from accidents like this.