comp.lang.ada
 help / color / mirror / Atom feed
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          |
> ---------------------------------------------------





      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