Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

msem_init(3)

msem_remove(3)

msem_unlock(3)

msem_lock(3)  —  Subroutines

OSF

NAME

msem_lock − Locks a semaphore

LIBRARY

Standard C Library (libc.a)

SYNOPSIS

#include <sys/mman.h> int msem_lock (
msemaphore ∗sem,
int condition );

PARAMETERS

semPoints to an msemaphore structure which specifies the semaphore to be locked. 

conditionDetermines whether the msem_lock() function waits for a currently locked semaphore to unlock. 

DESCRIPTION

The msem_lock() function attempts to lock a binary semaphore. 

If the semaphore is not currently locked, it is locked and the msem_lock() function returns successfully. 

If the semaphore is currently locked, and the condition parameter is MSEM_IF_NOWAIT, then the msem_lock() function returns with an error.  If the semaphore is currently locked, and the condition parameter is 0 (zero), then msem_lock() will not return until either the calling process is able to successfully lock the semaphore, or an error condition occurs. 

All calls to msem_lock() and msem_unlock() by multiple processes sharing a common msemaphore structure behave as if the calls were serialized. 

If the msemaphore structure contains any value not resulting from a call to msem_init() followed by a (possibly empty) sequence of calls to msem_lock() and msem_unlock(), the results are undefined.  The address of an msemaphore structure may be significant.  If the msemaphore structure contains any value copied from an msemaphore structure at a different address, the result is undefined. 

NOTES

AES Support Level:
Trial use

RETURN VALUES

On successful completion, the msem_lock() function returns 0 (zero).  On error, the msem_lock() function returns -1 and sets errno to indicate the error. 

ERRORS

If the msem_lock() function fails, errno may be set to one of the following values:

[EAGAIN]MSEM_IF_NOWAIT was specified and the semaphore was already locked. 

[EINVAL]The sem parameter points to an msemaphore structure which specifies a semaphore which has been removed, or the condition parameter is invalid. 

[EINTR]The msem_lock() function was interrupted by a signal which was caught. 

RELATED INFORMATION

Functions: msem_init(3), msem_remove(3), msem_unlock(3)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026