`shared`...
Kagamin
spam at here.lot
Mon Oct 1 08:04:38 UTC 2018
On Monday, 1 October 2018 at 02:29:40 UTC, Manu wrote:
> So, I know that there's not a bunch of threads banging on this
> object... but the shared method should still work! A method that
> handles thread-safety doesn't suddenly not work when it's only
> accessed from a single thread.
Shared data may need different algorithms. If unshared data is
implicitly convertible to shared, you start to conflate shared
data with unshared, so you're back to C-style sharing.
This is how you can do it:
shared struct SharedBob
{
this(int){}
void setThing(){}
}
alias shared SharedBob Bob;
void f(ref shared Bob a, ref Bob b)
{
a.setThing(); // I have a shared object, can call shared method
b.setThing(); // ok
}
int main()
{
auto b=Bob(0);
Bob c;
f(b,c);
return 0;
}
More information about the Digitalmars-d
mailing list