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 behaviour 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 upto 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.