dm_sem Module

Named POSIX semaphores. Has to be linked with -lpthread.


Uses

  • module~~dm_sem~~UsesGraph module~dm_sem dm_sem module~dm_error dm_error module~dm_sem->module~dm_error module~dm_id dm_id module~dm_sem->module~dm_id unix unix module~dm_sem->unix module~dm_ascii dm_ascii module~dm_error->module~dm_ascii module~dm_kind dm_kind module~dm_error->module~dm_kind iso_fortran_env iso_fortran_env module~dm_kind->iso_fortran_env

Used by

  • module~~dm_sem~~UsedByGraph module~dm_sem dm_sem module~dmpack dmpack module~dmpack->module~dm_sem

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: SEM_MODE = int(o'0660')

Permissions.

integer, public, parameter :: SEM_NAME_LEN = ID_LEN+1

Max. semaphore identifier length.


Derived Types

type, public ::  sem_type

Opaque named semaphore type.


Functions

public function dm_sem_close(sem) result(rc)

Closes named semaphore. The function returns the following error codes:

Read more…

Arguments

Type IntentOptional Attributes Name
type(sem_type), intent(inout) :: sem

Semaphore type.

Return Value integer

public function dm_sem_open(sem, name, value, create, mode) result(rc)

Opens and optionally creates named semaphore. The given name shall not start with a leading /.

Read more…

Arguments

Type IntentOptional Attributes Name
type(sem_type), intent(inout) :: sem

Semaphore type.

character(len=*), intent(in) :: name

Semaphore name (without leading /).

integer, intent(in), optional :: value

Initial value.

logical, intent(in), optional :: create

Create semaphore.

integer, intent(in), optional :: mode

Permissions.

Return Value integer

public function dm_sem_name(sem) result(name)

Returns the name of the semaphore.

Arguments

Type IntentOptional Attributes Name
type(sem_type), intent(inout) :: sem

Semaphore type.

Return Value character(len=:), allocatable

Semaphore name.

public function dm_sem_post(sem) result(rc)

Increases semaphore value. Returns E_SYSTEM on error.

Arguments

Type IntentOptional Attributes Name
type(sem_type), intent(inout) :: sem

Semaphore type.

Return Value integer

public function dm_sem_unlink(sem) result(rc)

Unlinks named semaphore. Returns E_SYSTEM on error.

Arguments

Type IntentOptional Attributes Name
type(sem_type), intent(inout) :: sem

Semaphore type.

Return Value integer

public function dm_sem_value(sem, value) result(rc)

Returns the current semaphore value. Returns E_SYSTEM on error.

Arguments

Type IntentOptional Attributes Name
type(sem_type), intent(inout) :: sem

Semaphore type.

integer, intent(out) :: value

Returned value.

Return Value integer

public function dm_sem_wait(sem) result(rc)

Waits for semaphore. Returns E_SYSTEM on error.

Arguments

Type IntentOptional Attributes Name
type(sem_type), intent(inout) :: sem

Semaphore type.

Return Value integer