next up previous contents index
Weiter: D.9 Asynchrone Task-Kontrolle Hinauf: D Echtzeitprogrammierung Zurück: Über die Zeit

D.8 Synchrone Task-Kontrolle

 

Hier wird ein semaphor-artiges Objekt definiert, das die Möglichkeit zur Realisierung von komplexen Warteschlangen bietet.


package Ada.Synchronous_Task_Control is

type Suspension_Object is limited private;
procedure Set_True(S : in out Suspension_Object);
procedure Set_False(S : in out Suspension_Object);
function Current_State(S : Suspension_Object) return Boolean;
procedure Suspend_Until_True(S : in out Suspension_Object);
private
... -notspecifiedbythelanguage
end Ada.Synchronous_Task_Control;

Die Operationen Set_True und Set_False verhalten sich atomar zueinander und zur Operation Suspend_Until_True. Wenn Suspend_Until_True aufgerufen wird, wird die Exception Program_Error ausgelöst, falls schon ein anderer Task auf das Suspension_Object wartet.



Johann Blieberger
Wed Feb 11 09:58:52 MET 1998