usnewlock - allocate and initialize a lock
ulock_t usnewlock (usptr_t *handle);
usnewlock allocates a lock from the arena designated by handle (returned
from usinit(3P)) and initializes it and all associated data. There are
different types of locks; by default the fastest lock type for the class
of machine the process is running on is allocated. See usconfig(3P) for
other specifiable lock types. Metering and debugging are only enabled if
the locks are of the debugging type (see usconfig(3P). There is a limit
of a maximum of 4096 locks per shared area (for hardware supported
locks). The size of the shared arena can also limit the number of locks
that can be allocated.
usnewlock will fail if one or more of the following are true:
[ENOMEM] There is no memory in the arena available to allocate the
lock structure (see usconfig(3P)).
[ENOSPC] If the system imposed maximum (4096) number of allocatable
locks has been exceeded.
[ENOSPC] All the locks in the system have been allocated.
usconfig(3P), usctllock(3P), usfreelock(3P), usinit(3P), usinitlock(3P),
usnewsema(3P), usnewpollsema(3P), ussetlock(3P).
Upon successful completion, a ulock_t structure is returned, otherwise
NULL is returned and errno is set to indicate the error.
PPPPaaaaggggeeee 1111 [ Back ]