Effects: Calls try_lock() for each argument in order beginning with the
first until all arguments have been processed or a call to try_lock() fails,
either by returning false or by throwing an exception.
If a call to
try_lock() fails, unlock() shall be called for all prior arguments
and there shall be no further calls to try_lock().