Browse files

Add a simple test of tasking

  • Loading branch information...
1 parent 130b955 commit d5c85b63e7856ae0030c9e0a11f1aa78f1bd6995 @rtyler committed Jan 30, 2011
Showing with 32 additions and 0 deletions.
  1. +32 −0 twotasking.adb
View
32 twotasking.adb
@@ -0,0 +1,32 @@
+--
+--
+--
+
+with Ada.Text_IO, Ada.Float_Text_IO;
+with Ada.Numerics.Float_Random;
+use Ada.Float_Text_IO, Ada.Text_IO;
+
+procedure TwoTasking is
+ task type TenLooper (Id : Character) is
+ end TenLooper;
+
+ task body TenLooper is
+ Seed : Ada.Numerics.Float_Random.Generator;
+ begin
+ Ada.Numerics.Float_Random.Reset (Seed, Character'Pos (Id));
+ for I in 1 .. 10 loop
+ declare
+ Offset : Duration := Duration (Ada.Numerics.Float_Random.Random (Seed));
+ begin
+ Put_Line ("Derp: " & Id & " :: " & Integer'Image (I));
+ Put_Line ("Delaying: " & Duration'Image (Offset));
+ delay Offset;
+ end;
+ end loop;
+ end TenLooper;
+
+ Task_1 : TenLooper ('A');
+ Task_2 : TenLooper ('B');
+begin
+ Put_Line ("..waiting for tasks to complete");
+end TwoTasking;

0 comments on commit d5c85b6

Please sign in to comment.