From: Martin Dowie <martin@dowie-cs.demon.co.uk>
Subject: Re: Tasking and blocked threads
Date: 1999/09/11
Date: 1999-09-11T00:00:00+00:00 [thread overview]
Message-ID: <37DA17B6.33BBD15E@dowie-cs.demon.co.uk> (raw)
In-Reply-To: 37D849AE.AC5EA4F1@res.raytheon.com
in apex, you can use 'pragma Main' to switch between blocking and
non-blocking text_io - might be interesting to see if there was any
difference in behaviour after that...
Andy Askey wrote:
> This is really a Apex Ada95 specific question, but maybe someone on here
> has experience in this area.
>
> I wrote the following simple program to determine the difference between
> the STANDARD Ada95 model and the THREADED Ada95 model with Apex 3.0.0b
> on a Solaris 2.6 OS. The output from the STANDARD model swaps between
> tasks alternating grouped lines of output. A bunch of "in task one"
> lines are followed by a bunch of "YOMOMMA!!!!!" lines. I was told that
> this was due to time slicing in the STANDARD model.
>
> When I compiled with the THREADED model, I observed pretty much the same
> thing. Even though the bunches of lines of text looked a little
> different with the THREADED model, it was obvious that the program was
> switching between the main and task one threads. My question: why are
> both threads getting CPU time? (I verified with "Show Imports" that I
> was using the THREADED views (see text following the code.)
>
> I added delay statements to see if one task would block the other, but
> it did not. I added a Task_Two package and execution control was passed
> between all three threads. I thought I understood from previous answers
> that this was not expect behavior. Does this mean I can write an Ada95
> program with several independent tasks and not worry about one task
> blocking another? (Stealing CPU cycles yes, but not really blocking.)
>
> Thanx.
> Andy
>
> --
> -- File Name: task_one.1.ada
> --
> package Task_One is
> task One;
> end Task_One;
> --
> -- File Name: task_one.2.ada
> --
> with Ada.Text_Io;
> package body Task_One is
> task body One is
> begin
> loop
> ada.text_io.Put_Line ("in task one");
> end loop;
> end One;
> end Task_One;
>
> --
> -- File Name: mainproc.2.ada
> --
> with Task_One;
> with Ada.Text_Io;
> procedure Mainproc is
> begin
> loop
> ada.text_io.Put_Line ("YOMOMMA!!!!!");
> end loop;
> end Mainproc;
>
> -------------
>
> testout.ss/threaded.wrk
> Explicit Imports
> lrm.ss sun4_solaris2.ada95.thread.3.0.0.rel all_units
> numerics.ss sun4_solaris2.ada95.thread.3.0.0.rel all_units
> posix.ss sun4_solaris2.ada95.thread.3.0.0.rel all_units
> predefined.ss sun4_solaris2.ada95.thread.3.0.0.rel all_units
> rational.ss sun4_solaris2.ada95.thread.3.0.0.rel all_units
> systems_programming.ss sun4_solaris2.ada95.thread.3.0.0.rel
> all_units
> --
> ---------------------------------------------------
> | Andy Askey |
> | Software Engineer |
> | Raytheon Systems Company |
> | 670 Discovery Drive, Huntsville, AL 35806 |
> | Phone: (256) 971-2367 Fax: (256) 971-2306 |
> | andrew_j_askey@res.raytheon.com |
> ---------------------------------------------------
prev parent reply other threads:[~1999-09-11 0:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-09-09 0:00 Tasking and blocked threads Andy Askey
1999-09-10 0:00 ` Ted Dennison
1999-09-10 0:00 ` Robert A Duff
1999-09-11 0:00 ` Martin Dowie [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox