From: Gilbert Gosseyn <hnptz@yahoo.de>
Subject: How to terminate all running tasks?
Date: Wed, 10 Jun 2020 04:14:50 -0700 (PDT)
Date: 2020-06-10T04:14:50-07:00 [thread overview]
Message-ID: <7c14755d-f5f0-4000-bde1-d34423cf43abo@googlegroups.com> (raw)
Hi,
-- package spezification
package packp6 is
procedure tp6pm(N : Long_Integer);
end packp6;
-- package body
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Task_Identification;
package body packp6 is
procedure tp6pm(N : Long_Integer) is
use Ada.Task_Identification;
package LIO is new Integer_IO(Long_Integer);
solution_found : exception;
task p6p;
task p6m;
task body p6p is
pp,i : Long_Integer := 0;
begin
loop
i := i+1;
pp := 6*i+1;
if N mod pp = 0 then
new_line;put("pp= ");LIO.put(pp);
raise solution_found;
end if;
end loop;
end p6p;
task body p6m is
pm,i : Long_Integer := 0;
begin
loop
i := i+1;
pm := 6*i-1;
if N mod pm = 0 then
new_line;put("pm= ");LIO.put(pm);
raise solution_found;
end if;
end loop;
end p6m;
begin
null;
exception
when solution_found =>
Abort_Task(p6p'Identity);
Abort_Task(p6m'Identity);
end tp6pm;
end packp6;
-- test
with packp6; use packp6;
procedure P6_Test is
NN : Long_Integer := 11111111111111111;
begin
tp6pm(NN);
end P6_Test;
-- test result:
pm= 2071723
pp= 5363222357
When in a task the exception solution_found is raised, then I want all running tasks to be terminated immediately. Apparently this does not happen. How to improve?
next reply other threads:[~2020-06-10 11:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-10 11:14 Gilbert Gosseyn [this message]
2020-06-10 12:12 ` How to terminate all running tasks? Niklas Holsti
2020-06-10 12:29 ` Niklas Holsti
2020-06-10 16:26 ` Simon Wright
2020-06-11 6:04 ` J-P. Rosen
2020-06-10 13:49 ` Jeffrey R. Carter
2020-06-10 14:45 ` Jeffrey R. Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox