shared class SharedMutex { private Mutex mutex;
private @property Mutex unsharedMutex() { return cast(Mutex)mutex; } this() { mutex = cast(shared)new Mutex(); } alias unsharedMutex this; }SharedMutex can just be used like a normal Mutex, which is pretty neat. `alias this` is awesome!