The lock is automatically removed at the end of the lexical scope in which the C operator executes. I Removes a lock from a variable. If there are locks applied by the calling thread, removes one. If there are locks applied by another thread, does nothing. If there are no locks applied to the variable, does nothing.
C never blocks.
I may be any variable. I must be C ed before calling C . Using condition variables to synchronize threads requires additional code. I may be a floating point number, so this interface supports whatever time resolution the platform provides. I Blocks until I seconds after the epoch.