Represents a lock statement.
lock (foo);
lock (foo) { ... }
If the statement is empty, the mutex remains locked until a corresponding Vala.UnlockStatement occurs. Otherwise it's translated into a try/finally statement which unlocks the mutex after the block is finished.