Construct from an initial value with a new lock.
Lock, call dg(&t) for internal value t, then unlock.
Lock, call dg(), then unlock.
Unshared accessor to the internal T. WARNING: This method does not provide mutual exclusion.
Attempt to lock, and if successful, call dg(&t) for internal value t, then unlock.
Attempt to lock, and if successful, call dg() then unlock.
Shared, coarsely-locked wrapper of an unshared T.