size_t count;
class MyDisposable
{
void dispose()
{
count++;
}
}
auto disposable = cast(shared) new MyDisposable;
.atomicDispose(disposable);
assert(count == 1);
assert(disposable is null);
.atomicDispose(disposable);
assert(count == 1);
assert(disposable is null);
size_t count;
class MyDisposable : Disposable
{
void dispose()
{
count++;
}
}
shared(Disposable) disposable = cast(shared) new MyDisposable;
.atomicDispose(disposable);
assert(count == 1);
assert(disposable is null);
.atomicDispose(disposable);
assert(count == 1);
assert(disposable is null);
class MyDisposable
{
void dispose()
{
}
}
shared(MyDisposable) disposable1 = null;
.atomicDispose(disposable1);
shared(Disposable) disposable2 = null;
.atomicDispose(disposable2);