Multithreaded Programming Guide

mutex_init(3T)

#include <synch.h>   (or
#include <thread.h>)

int mutex_init(mutex_t *mp, int type, void *arg)); 

Use mutex_init() to initialize the mutex pointed to by mp. The type can be one of the following (note that arg is currently ignored).

Mutexes can also be initialized by allocation in zeroed memory, in which case a type of USYNC_THREAD is assumed.

Multiple threads must not initialize the same mutex simultaneously. A mutex lock must not be reinitialized while other threads might be using it.

Mutexes with Intraprocess Scope

#include <thread.h>

mutex_t mp;
int ret;

/* to be used within this process only */
ret = mutex_init(&mp, USYNC_THREAD, 0); 

Mutexes with Interprocess Scope

#include <thread.h>

mutex_t mp;
int ret;

/* to be used among all processes */
ret = mutex_init(&mp, USYNC_PROCESS, 0);