xref: /freebsd/share/man/man3/pthread_mutex_trylock.3 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
11fbdc08dSPoul-Henning Kamp.\" Copyright (c) 1997 Brian Cully <shmit@kublai.com>
21fbdc08dSPoul-Henning Kamp.\" All rights reserved.
31fbdc08dSPoul-Henning Kamp.\"
41fbdc08dSPoul-Henning Kamp.\" Redistribution and use in source and binary forms, with or without
51fbdc08dSPoul-Henning Kamp.\" modification, are permitted provided that the following conditions
61fbdc08dSPoul-Henning Kamp.\" are met:
71fbdc08dSPoul-Henning Kamp.\" 1. Redistributions of source code must retain the above copyright
81fbdc08dSPoul-Henning Kamp.\"    notice, this list of conditions and the following disclaimer.
91fbdc08dSPoul-Henning Kamp.\" 2. Redistributions in binary form must reproduce the above copyright
101fbdc08dSPoul-Henning Kamp.\"    notice, this list of conditions and the following disclaimer in the
111fbdc08dSPoul-Henning Kamp.\"    documentation and/or other materials provided with the distribution.
121fbdc08dSPoul-Henning Kamp.\" 3. Neither the name of the author nor the names of any co-contributors
131fbdc08dSPoul-Henning Kamp.\"    may be used to endorse or promote products derived from this software
141fbdc08dSPoul-Henning Kamp.\"    without specific prior written permission.
151fbdc08dSPoul-Henning Kamp.\"
161fbdc08dSPoul-Henning Kamp.\" THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL AND CONTRIBUTORS ``AS IS'' AND
171fbdc08dSPoul-Henning Kamp.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
181fbdc08dSPoul-Henning Kamp.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
191fbdc08dSPoul-Henning Kamp.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
201fbdc08dSPoul-Henning Kamp.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
211fbdc08dSPoul-Henning Kamp.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
221fbdc08dSPoul-Henning Kamp.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
231fbdc08dSPoul-Henning Kamp.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
241fbdc08dSPoul-Henning Kamp.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
251fbdc08dSPoul-Henning Kamp.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
261fbdc08dSPoul-Henning Kamp.\" SUCH DAMAGE.
271fbdc08dSPoul-Henning Kamp.\"
28*be50763fSKonstantin Belousov.Dd August 7, 2019
291fbdc08dSPoul-Henning Kamp.Dt PTHREAD_MUTEX_TRYLOCK 3
30a307d598SRuslan Ermilov.Os
311fbdc08dSPoul-Henning Kamp.Sh NAME
321fbdc08dSPoul-Henning Kamp.Nm pthread_mutex_trylock
331fbdc08dSPoul-Henning Kamp.Nd attempt to lock a mutex without blocking
34d8a78688SAlexey Zelkin.Sh LIBRARY
35ec7452f1SRuslan Ermilov.Lb libpthread
361fbdc08dSPoul-Henning Kamp.Sh SYNOPSIS
3732eef9aeSRuslan Ermilov.In pthread.h
381fbdc08dSPoul-Henning Kamp.Ft int
391fbdc08dSPoul-Henning Kamp.Fn pthread_mutex_trylock "pthread_mutex_t *mutex"
401fbdc08dSPoul-Henning Kamp.Sh DESCRIPTION
411fbdc08dSPoul-Henning KampThe
421fbdc08dSPoul-Henning Kamp.Fn pthread_mutex_trylock
431fbdc08dSPoul-Henning Kampfunction locks
441fbdc08dSPoul-Henning Kamp.Fa mutex .
451fbdc08dSPoul-Henning KampIf the mutex is already locked,
461fbdc08dSPoul-Henning Kamp.Fn pthread_mutex_trylock
471fbdc08dSPoul-Henning Kampwill not block waiting for the mutex, but will return an error condition.
481fbdc08dSPoul-Henning Kamp.Sh RETURN VALUES
491fbdc08dSPoul-Henning KampIf successful,
501fbdc08dSPoul-Henning Kamp.Fn pthread_mutex_trylock
511fbdc08dSPoul-Henning Kampwill return zero, otherwise an error number will be returned to
521fbdc08dSPoul-Henning Kampindicate the error.
531fbdc08dSPoul-Henning Kamp.Sh ERRORS
549d09157aSPhilippe CharnierThe
551fbdc08dSPoul-Henning Kamp.Fn pthread_mutex_trylock
569d09157aSPhilippe Charnierfunction will fail if:
572a339d9eSKonstantin Belousov.Bl -tag -width "Er ENOTRECOVERABLE"
581fbdc08dSPoul-Henning Kamp.It Bq Er EINVAL
591fbdc08dSPoul-Henning KampThe value specified by
601fbdc08dSPoul-Henning Kamp.Fa mutex
611fbdc08dSPoul-Henning Kampis invalid.
621fbdc08dSPoul-Henning Kamp.It Bq Er EBUSY
631fbdc08dSPoul-Henning Kamp.Fa Mutex
641fbdc08dSPoul-Henning Kampis already locked.
652a339d9eSKonstantin Belousov.It Bq Er EOWNERDEAD
662a339d9eSKonstantin BelousovThe argument
672a339d9eSKonstantin Belousov.Fa mutex
68*be50763fSKonstantin Belousovpoints to a robust mutex and the process containing the previous owning
69*be50763fSKonstantin Belousovthread terminated while holding the mutex lock.
702a339d9eSKonstantin BelousovThe lock was granted to the caller and it is up to the new owner
712a339d9eSKonstantin Belousovto make the state consistent.
722a339d9eSKonstantin Belousov.It Bq Er ENOTRECOVERABLE
732a339d9eSKonstantin BelousovThe state protected by the
742a339d9eSKonstantin Belousov.Fa mutex
752a339d9eSKonstantin Belousovis not recoverable.
761fbdc08dSPoul-Henning Kamp.El
771fbdc08dSPoul-Henning Kamp.Sh SEE ALSO
782a339d9eSKonstantin Belousov.Xr pthread_mutex_consistent 3 ,
79acd80190SWolfram Schneider.Xr pthread_mutex_destroy 3 ,
801fbdc08dSPoul-Henning Kamp.Xr pthread_mutex_init 3 ,
81acd80190SWolfram Schneider.Xr pthread_mutex_lock 3 ,
82acd80190SWolfram Schneider.Xr pthread_mutex_unlock 3
831fbdc08dSPoul-Henning Kamp.Sh STANDARDS
849d09157aSPhilippe CharnierThe
851fbdc08dSPoul-Henning Kamp.Fn pthread_mutex_trylock
869d09157aSPhilippe Charnierfunction conforms to
87096841ecSRuslan Ermilov.St -p1003.1-96 .
88