## lock_handoff

Function - Hand-off ownership of a lock.

### SYNOPSIS

    kern_return_t   lock_handoff
                    (lock_set_t                            lock_set,
                     int                                    lock_id);

### PARAMETERS

lock_set
  [in send right] The port naming the lock set which represents the lock.

lock_id
  [in scalar] The lock, represented by the lock set, to be handed off.

### DESCRIPTION

The lock_handoff function passes lock ownership from the calling thread to an anonymous accepting thread. The lock must be owned by the calling thread. If the accepting thread is not waiting to receive the lock, the calling thread will block until the hand-off is accepted.

### RETURN VALUES

KERN_INVALID_ARGUMENT
  The specified lock_set is invalid, or the lock_id is out of range.

KERN_INVALID_RIGHT
  The calling thread does not own the lock being handed off.

KERN_SUCCESS
  The lock hand-off was successful.

KERN_LOCK_SET_DESTROYED
  The specified lock has been destroyed.

KERN_ABORTED
  While blocked to wait for the accepting thread to assume the lock's ownership, the calling thread was awoken by an unrelated event; the lock's handoff state is cleared.

### RELATED INFORMATION

Functions: lock_acquire, lock_release, lock_try, lock_handoff_accept, lock_make_stable, lock_set_create, lock_set_destroy.