Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Runtime Library: Concurrency

The Concurrency library has 61 classes.

ECF: thread.ecf

Classes augmenting the classic EiffelThread library. Of these, the most useful are EL_PROCEDURE_DISTRIBUTER and EL_FUNCTION_DISTRIBUTER which offers a convenient way to distribute the work of executing routines using a specific number of cores. See routine read_source_files in class EIFFEL_CONFIGURATION_FILE for an example.

Directory: library/runtime/concurrency

[ . ]

. /communication

. /communication/producer-consumer

. /communication/producer-consumer/consumer

. /communication/producer-consumer/distributer

. /communication/producer-consumer/procedure-call

. /communication/producer-consumer/timed

. /communication/producer-consumer/timed/counter

. /communication/producer-consumer/timed/events

. /communication/producer-consumer/timed/procedure-call

. /communication/proxy

. /structures

. /synchronization

. /thread-states

. /thread-types

[ . ]

EL_MUTEX_MAKEABLE_REFERENCE

Mutex makeable reference

EL_NAMED_THREAD

Named thread

EL_SHARED_THREAD_MANAGER

Shared thread manager

EL_THREAD_DEVELOPER_CLASS

Developer class for code discovery/navigation purposes

EL_THREAD_MANAGER

Thread manager

communication

EL_DEFAULT_MAIN_THREAD_EVENT_REQUEST_QUEUE

Saves event indexes for processing in descendant of EL_MAIN_THREAD_EVENT_REQUEST_QUEUE, EL_APPLICATION_IMP.

EL_EVENT_LISTENER_ACTION

Event listener action

EL_EVENT_LISTENER_MAIN_THREAD_PROXY

Event listener main thread proxy

EL_MAIN_THREAD_EVENT_REQUEST_QUEUE

Queue to notify an event listener from main application thread

EL_SHARED_MAIN_THREAD_EVENT_REQUEST_QUEUE

Shared main thread event request queue

communication/producer-consumer

EL_ONE_TO_MANY_THREAD_PRODUCT_QUEUE

Product queue serviced by many consumers

EL_THREAD_PRODUCT_QUEUE

Thread safe queue

communication/producer-consumer/consumer

EL_CONSUMER

Consumer

EL_CONSUMER_MAIN_THREAD

Product consumer operating in main message_loop_callback GUI thread

EL_CONSUMER_THREAD

Consumes the products of a product queue fed by another thread

EL_DELEGATING_CONSUMER_THREAD

Consumer thread

EL_MANY_TO_ONE_CONSUMER_THREAD

Many to one consumer thread

EL_NONE_CONSUMER

Do nothing consumer

communication/producer-consumer/distributer

EL_FUNCTION_DISTRIBUTER

Descendant of EL_WORK_DISTRIBUTER specialized for functions. G is the return type of functions you wish to execute. For an example on how to use see class TEST_WORK_DISTRIBUTER_APP

EL_PROCEDURE_DISTRIBUTER

Descendant of EL_WORK_DISTRIBUTER specialized for procedures. G is the target type of the procedures you wish to execute. For an example on how to use see TEST_WORK_DISTRIBUTER_APP

EL_WORK_DISTRIBUTER

Object to distribute work of evaulating routines over a maximum number of threads. It can be used directly, or with one of it's two descendants.

Further Information

Click on class link to see descendants and instructions.

communication/producer-consumer/procedure-call

EL_PROCEDURE_CALL_CONSUMER

Procedure call consumer

EL_PROCEDURE_CALL_CONSUMER_MAIN_THREAD

Procedure call consumer main thread

EL_PROCEDURE_CALL_CONSUMER_THREAD

Procedure call consumer thread

EL_PROCEDURE_CALL_QUEUE

Procedure call queue

EL_SEPARATE_PROCEDURE

Separate procedure

EL_TUPLE_CONSUMER

Tuple consumer

EL_TUPLE_CONSUMER_MAIN_THREAD

Object that consumes tuples in main GUI thread with specified action/actions

EL_TUPLE_CONSUMER_THREAD

Tuple consumer thread

communication/producer-consumer/timed

EL_TIMEOUT

Repeatedly puts timer event onto a thread queue

communication/producer-consumer/timed/counter

EL_COUNT_CONSUMER

Count consumer

EL_COUNT_CONSUMER_MAIN_THREAD

Count consumer main thread

EL_COUNT_CONSUMER_THREAD

Count consumer thread

EL_TIMED_COUNT_PRODUCER

Timed count producer

communication/producer-consumer/timed/events

EL_MAIN_THREAD_REGULAR_INTERVAL_EVENT_CONSUMER

Main thread regular interval event consumer

EL_REGULAR_INTERVAL_EVENT

Regular interval event

EL_REGULAR_INTERVAL_EVENT_CONSTANTS

Regular interval event constants

EL_REGULAR_INTERVAL_EVENT_CONSUMER

Regular interval event consumer

EL_REGULAR_INTERVAL_EVENT_PROCESSOR

Regular interval event processor

EL_REGULAR_INTERVAL_EVENT_PRODUCER

Regular interval event producer

EL_THREAD_REGULAR_INTERVAL_EVENT_CONSUMER

Thread regular interval event consumer

communication/producer-consumer/timed/procedure-call

EL_TIMED_PROCEDURE

Timed procedure

EL_TIMED_PROCEDURE_MAIN_THREAD

Timed procedure main thread

EL_TIMED_PROCEDURE_THREAD

Timed procedure thread

communication/proxy

EL_MAIN_THREAD_PROXY

Proxy object to (asynchronously) call procedures of BASE_TYPE from an external thread (non GUI thread)

EL_THREAD_PROXY

Proxy object to (asynchronously) call procedures of BASE_TYPE from an another thread

structures

EL_THREAD_SAFE_STACK

Thread safe stack

synchronization

EL_THREAD_BLOCK

Thread block

thread-states

EL_STATEFUL

Stateful

EL_STOPPABLE_THREAD

Stoppable thread

EL_SUSPENDABLE

Suspendable

EL_THREAD_CONSTANTS

Thread constants

thread-types

EL_CONTINUOUS_ACTION_THREAD

Continuous action thread

EL_DORMANT_ACTION_LOOP_THREAD

Thread that remains dormant until signalled to resume action loop

EL_IDENTIFIED_MAIN_THREAD

Identified main thread

EL_IDENTIFIED_THREAD

Identified thread

EL_IDENTIFIED_THREAD_I

Identified thread i

EL_INTERRUPTABLE_THREAD

Interruptable thread

EL_RHYTHMIC_ACTION_THREAD

Repeats an action at timed intervals and prompts any registered responder May work but not fully tested.

EL_WORKER_THREAD

Worker thread

EL_WORK_DISTRIBUTION_THREAD

Thread that applies the set routine and then waits for a resume prompt to do another one.