eCosTM Reference Manual
Prev | Chapter 17. Package: eCos kernel | Next

# Component: Synchronization primitives

#### Macro name

CYGPKG_KERNEL_SYNCH

#### Type

Dummy

#### Description

The eCos kernel supports a number of different synchronization primitives such as mutexes, semaphores, condition variables, and message boxes. There are configuration options to control the exact behavior of some of these synchronization primitives.

## Option: Simple mutex priority inheritance

#### Macro name

CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE

#### Type

Boolean

#### Description

This option enables a relatively simple implementation of mutex priority inheritance. The implementation will only work in the mlqueue scheduler, and it does not handle the rare case of nested mutexes completely correctly. However it is both fast and deterministic. Mutex priority inheritance can be disabled if the application does not require it, which will reduce both code size and data space.

## Option: Message box blocking put support

#### Macro name

CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT

#### Type

Boolean

#### Description

Message boxes can support three different versions of the put-message operation. The first is tryput(), which will fail if the message box is already full. The other two are the ordinary put() function which will block if the message box is full, and a timed put() operation which will block for up to a certain length of time if the message box is currently full. The blocking versions require extra memory in the message box data structure and extra code in the other message box functions, so they can be disabled if the application does not require them. If this option is enabled then the system will always provide the blocking put() function, and it will also provide the timed put() function if thread timers are enabled.

## Option: Message box queue size

#### Macro name

CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE

#### Type

Count

#### Description

This configuration option controls the number of messages that can be queued in a message box before a non-blocking put() operation will fail or a blocking put() operation will block. The cost in memory is one pointer per message box for each possible message.

## Option: Condition variable timed-wait support

#### Macro name

CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT

#### Type

Boolean

#### Description

This option enables the condition variable timed wait facility.

Prev | Home | Next
Component: Thread-related options | Up | Component: Kernel instrumentation