cpp/thread/lock guard

The class is a mutex wrapper that provides a convenient RAII-style mechanism for owning a mutex for the duration of a scoped block.

When a object is created, it attempts to take ownership of the mutex it is given. When control leaves the scope in which the object was created, the  is destructed and the mutex is released.

The class is non-copyable.