January 30, 2003 PTHREAD_MUTEX_LOCK 3

### NAME

pthread_mutex_lock, pthread_mutex_trylock - acquire a lock on a mutex

### LIBRARY

POSIX Thread Library (libpthread, -lpthread)

### SYNOPSIS

```int` pthread_mutex_lock(```pthread_mutex_t *mutex`)
```int` pthread_mutex_trylock(```pthread_mutex_t *mutex`)

### DESCRIPTION

The pthread_mutex_lock(``) function locks ```mutex`. If the mutex is already locked, the calling thread will block until the mutex becomes available.

The pthread_mutex_trylock(``) function locks ```mutex`. If the mutex is already locked, pthread_mutex_trylock(``) will not block waiting for the mutex, but will return an error condition.

### RETURN VALUES

If successful, pthread_mutex_lock(``) and pthread_mutex_trylock(``) will return zero, otherwise an error number will be returned to indicate the error.

### ERRORS

pthread_mutex_lock(``) may fail if:

[```EDEADLK`]
  A deadlock would occur if the thread blocked waiting for ```mutex`.

[```EINVAL`]
  The value specified by ```mutex` is invalid.

pthread_mutex_trylock(``) shall fail if:

[```EBUSY`]
  ```Mutex` is already locked.

pthread_mutex_trylock(``) may fail if:

[```EINVAL`]
  The value specified by ```mutex` is invalid.

### SEE ALSO

pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_unlock(3)

### STANDARDS

pthread_mutex_lock(``) and pthread_mutex_trylock(``) conform to ISO/IEC 9945-1:1996 (``POSIX.1'') .