wait_event_interruptible_exclusive_locked(9) [centos man page]
WAIT_EVENT_INTERRUPT(9) Driver Basics WAIT_EVENT_INTERRUPT(9)NAME
wait_event_interruptible_exclusive_locked - sleep exclusively until a condition gets true
SYNOPSIS
wait_event_interruptible_exclusive_locked(wq, condition);
ARGUMENTS
wq
the waitqueue to wait on
condition
a C expression for the event to wait for
DESCRIPTION
The process is put to sleep (TASK_INTERRUPTIBLE) until the condition evaluates to true or a signal is received. The condition is checked
each time the waitqueue wq is woken up.
It must be called with wq.lock being held. This spinlock is unlocked while sleeping but condition testing is done while lock is held and
when this macro exits the lock is held.
The lock is locked/unlocked using spin_lock/spin_unlock functions which must match the way they are locked/unlocked outside of this macro.
The process is put on the wait queue with an WQ_FLAG_EXCLUSIVE flag set thus when other process waits process on the list if this process
is awaken further processes are not considered.
wake_up_locked has to be called after changing any variable that could change the result of the wait condition.
The function will return -ERESTARTSYS if it was interrupted by a signal and 0 if condition evaluated to true.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 WAIT_EVENT_INTERRUPT(9)
Check Out this Related Man Page
sem_wait(2) System Calls Manual sem_wait(2)NAME
sem_wait, sem_trywait - lock a POSIX semaphore
SYNOPSIS DESCRIPTION
is used to lock a semaphore. The calling thread will not return from its call to until one of the following events occur: it successfully
obtains a lock on the semaphore; it is interrupted by a signal or an error condition occurs.
is used to lock a semaphore, if it is available. The value of the semaphore sem is checked at some unspecified time during the call. If
the semaphore is available at the time its value is checked, the calling thread will atomically, with respect to the checking of the value,
lock the semaphore. The thread will now own a lock on the semaphore; the call will return successfully. If the semaphore is unavailable
at the time its value is checked, then the call returns -1 with errno set to EAGAIN.
If the specified semaphore referred to by sem is a named semaphore, then this semaphore must have been opened by the calling process with
The calling process must have both read and write permissions on the semaphore to perform these operations. The semaphore will be locked
upon successful return and will stay locked until it is explicitly released by a call to
To use this function, link in the realtime library by specifying on the compiler or linker command line.
EXAMPLES
The following call to will lock the semaphore sem.
The following call to will lock the semaphore sem, if it is available.
RETURN VALUE
A successful call to will return 0 and the calling thread will then own a lock on the semaphore. Otherwise, the call to will return -1
with errno set to the appropriate value of the error condition.
A successful call to will return 0, if the semaphore was available and the calling thread was able to lock the semaphore. Otherwise, the
call to will return -1 with errno set to the appropriate value of the error condition.
ERRORS
and fail and do not perform the requested operation if any of the following conditions are encountered:
[EPERM] The calling process does not have the privileges necessary to lock the semaphore.
[EAGAIN] The semaphore was not available and hence could not be locked by This error condition only occurs in
[EINVAL] The argument sem does not refer to a valid semaphore.
[EINTR] The function was interrupted by a signal
SEE ALSO sem_post(2), <semaphore.h>.
STANDARDS CONFORMANCE sem_wait(2)