Index

Package: Atomic_Controller (generic)

Description

generic
   type Task_Ids is (<>);

package Atomic_Controller is
This generic monitor synchronizes the concurrent parts of an atomic action and distributes a failure signal to all. This monitor is used in conjunction with Generic_Atomic_Action.

Tasks & Protected

Types

Atomic_State

type Atomic_State is (Checking_In,
                         All_Checked_In,
                         Checking_Out,
                         Final);

References:

atomic_controller.ads:14:9 (declaration)
atomic_controller.ads:46:25 (reference)

Atomic_Condition

type Atomic_Condition is (Succeeded,
                             Late_Condition,
                             Time_Out_Condition,
                             Other_Exception);

Check_Out_State

type Check_Out_State is (Normal_Check_Out, Failed_Check_Out);

References:

atomic_controller.ads:24:9 (declaration)
atomic_controller.adb:38:47 (reference)
atomic_controller.ads:40:24 (reference)

Task_State

type Task_State is (Is_In, Is_Out);

References:

atomic_controller.ads:26:9 (declaration)
atomic_controller.ads:28:42 (reference)

Task_List

type Task_List is array (Task_Ids) of Task_State;

Constants & Global variables

Check_List_All_In (Task_List)

Check_List_All_In      : constant Task_List := (others => Is_In);

References:

atomic_controller.ads:30:4 (declaration)
atomic_controller.adb:20:29 (reference)

Check_List_All_Out (Task_List)

Check_List_All_Out     : constant Task_List := (others => Is_Out);

References:

atomic_controller.ads:31:4 (declaration)
atomic_controller.adb:45:26 (reference)
atomic_controller.ads:45:45 (reference)

Repeated_Check_In

Repeated_Check_In : exception;

References:

atomic_controller.ads:52:4 (declaration)
atomic_controller.adb:17:19 (reference)

Subprograms & Entries

Monitor. Final_Condition (private)

Final_Condition: Atomic_Condition := Succeeded;

References:

atomic_controller.adb:29:10 (write reference)
atomic_controller.adb:55:10 (write reference)

Monitor. Id_Counter (private)

Id_Counter: Task_Ids         := Task_Ids'First;

References: