Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mutex_lock(9) [centos man page]

MUTEX_LOCK(9)							Mutex API reference						     MUTEX_LOCK(9)

mutex_lock - acquire the mutex SYNOPSIS
void __sched mutex_lock(struct mutex * lock); ARGUMENTS
lock the mutex to be acquired DESCRIPTION
Lock the mutex exclusively for this task. If the mutex is not available right now, it will sleep until it can get it. The mutex must later on be released by the same task that acquired it. Recursive locking is not allowed. The task may not exit without first unlocking the mutex. Also, kernel memory where the mutex resides mutex must not be freed with the mutex still locked. The mutex must first be initialized (or statically defined) before it can be locked. memset-ing the mutex to 0 is not allowed. ( The CONFIG_DEBUG_MUTEXES .config option turns on debugging checks that will enforce the restrictions and will also do deadlock debugging. ) This function is similar to (but not equivalent to) down. AUTHOR
Rusty Russell <> Author. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 MUTEX_LOCK(9)

Check Out this Related Man Page

pthread_mutex_trylock(3)				     Library Functions Manual					  pthread_mutex_trylock(3)

pthread_mutex_trylock - Attempts to lock the specified mutex, without waiting if already locked. LIBRARY
DECthreads POSIX 1003.1c Library ( SYNOPSIS
#include <pthread.h> int pthread_mutex_trylock( pthread_mutex_t *mutex); STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: IEEE Std 1003.1c-1995, POSIX System Application Program Interface PARAMETERS
Mutex to be locked. DESCRIPTION
This routine attempts to lock the mutex specified in the mutex argument. When a thread calls this routine, an attempt is made to immedi- ately lock the mutex. If the mutex is successfully locked, this routine returns zero (0) and the calling thread becomes the mutex's current owner. If the specified mutex is locked when a thread calls this routine, the calling thread does not wait for the mutex to become avail- able. The behavior of this routine is as follows: For a normal, default, or errorcheck mutex: if the mutex is locked by any thread (including the calling thread) when this routine is called, this routine returns [EBUSY] and the calling thread does not wait to acquire the lock. For a normal or errorcheck mutex: if the mutex is not owned, this routine returns zero (0) and the mutex becomes locked by the calling thread. For a recursive mutex: if the mutex is owned by the calling thread, this routine returns zero (0) and the mutex lock count is incremented. (To unlock a recursive mutex, each call to pthread_mutex_trylock(3) must be matched by a call to pthread_mutex_unlock(3).) Use the pthread_mutexattr_settype(3) routine to set the mutex type attribute (normal, default, recursive, or errorcheck). RETURN VALUES
If an error condition occurs, this routine returns an integer value indicating the type of error. Possible return values are as follows: Successful completion. The mutex is already locked; therefore, it was not acquired. The value specified by mutex is not a valid mutex. ERRORS
Functions: pthread_mutexattr_settype(3), pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_unlock(3) Manuals: Guide to DECthreads and Programmer's Guide delim off pthread_mutex_trylock(3)
Man Page

6 More Discussions You Might Find Interesting

1. Programming

How to handle mutex lock?

Hi, I have two tasks 'Read' and 'Write' which reads and writes on a file "abc.txt" respectively. Now I need to restrict the Write operation on the file while Read is going on, But can allow two Reads at a time. ie. two Reads can happen simultaneously, but Write can't happen at Read is going on. ... (3 Replies)
Discussion started by: satheeshalle
3 Replies

2. Programming

pthread_rwlock_lock vs pthread_mutex_lock

I have been wondering what the difference between pthread_rwlock_lock and pthread_mutex_lock is. Both these routines acquire an exclusive rw lock on an enclosed region. So I performed a simple experiment in which I execute both these routines multiple times in a loop. Here are the results:... (1 Reply)
Discussion started by: kmehta
1 Replies

3. Programming

Interesting issue with pthread_mutex_lock and siglongjmp in AIX 5.3 (and no other OS)

Executive summary: Code (posted below) cores in AIX 5.3, despite being compiled and run successfully on several other operating systems. Code is attempting to verify that pthread_mutex_lock can be successfully aborted by siglongjmp. I do not believe this is an unreasonable requirement. If... (1 Reply)
Discussion started by: DreamWarrior
1 Replies

4. Programming

Mutex lock question

Hi all, I have a scenario where I need to use the mutex locks. The mutex locks are working fine, but sometimes I am getting into the dead lock situation. Below is the summary of my code : MUTEX LOCK performTask(); MUTEX UNLOCK. In some cases I get into the situation where... (2 Replies)
Discussion started by: cjjoy
2 Replies

5. Programming

Number of threads waiting on a pthread mutex/rwlock

Using pthreads is there a way to determine how many threads are waiting on a locked resource? I mean, once a shared resource is protected using e.g. pthread_rwlock_t or pthread_mutex_t one thread grabs the lock and other threads will go to sleep waiting for the resource to be available again. Is... (0 Replies)
Discussion started by: muggu
0 Replies

6. Programming

pthread_mutex_lock in ANSI C vs using Atomic builtins of GCC

I have a program which has 7-8 threads, and lots of shared variables; these variables (and also they may not the primitive type, they may be enum or struct ), then they may read/write by different threads at the same time. Now, my design is like this, typedef unsigned short int UINT16;... (14 Replies)
Discussion started by: sehang
14 Replies