comp.lang.ada
 help / color / mirror / Atom feed
From: anon@anon.org (anon)
Subject: Re: Tasking issues
Date: Sun, 12 Aug 2007 21:39:58 GMT
Date: 2007-08-12T21:39:58+00:00	[thread overview]
Message-ID: <O6Lvi.32007$ax1.21997@bgtnsc05-news.ops.worldnet.att.net> (raw)
In-Reply-To: se8lag9odx40$.1ko5kq7eszy2u.dlg@40tude.net

First the 'ABORT' statement is a legal statement. Yes, there are better 
ways to terminate the task, but that would mean a complete overhaul of 
shaunpatterson's program, which could confuse shaunpatterson.

Also any statement that is valid in the language is valid in the code. And 
the people who say 'ABORT' statement is bad are just like the guys who 
said that "GOTO" in other languages or Ada's 'LOOP' statement is bad. 
Since "GOTO' or 'LOOP' statements are a high-level language version of 
the 'JMP' assembly instruction.  That concept that is just stupid, it 
comes from people who have no idea of how to program.  

Try and write code without jumping, which means you could never use 
the 'case', 'delay', 'do', 'else', 'elsif', 'exception', 'exit', 'for, 'goto', 'if', 
'loop', 'raise', 'select', 'terminate', 'then', 'until', 'when', while' 
statements. For jumping you could only use a subroutine call and 'return'
statement with no conditional statements or routines allowed.  

Now, shaunpatterson just wanted some understanding of the difference 
between C (fork) and ADA (task). For a deeper understanding he should 
always go to the library or buy an Ada programming book. Or do a 
google search of Ada tasking example programs. Then type in the 
examples and compile and run them.


As for "Get_Line immediately", thats an error, The Ada code can not 
force the operating system or keyboard routine to abort. Try reading 
RM 7.6.1 (23).

23   (20) Abort is deferred during certain operations related to controlled
     types, as explained in 9.8.  Those rules prevent an abort from causing a
     controlled object to be left in an ill-defined state.

Since the keyboard routine in the operating system is one of the 
following define in RM 9.8

    6  a protected action;
   11  an assignment operation to an object with a controlled part.

or the 'Get_Line' procedure has connect to a secondary task { aka 
operating system's keyboard routine } and the execution is define in 
RM 9.8 as

   16  the point where the execution initiates the activation of another
       task;
or
   17  the end of the activation of a task;

where the another task { aka operating system's keyboard routine }.

But shaunpatterson does not want to read a book, so my explaination 
was good enough!

Also where is your example of how the code should be written without a 
complete overhaul of shaunpatterson's program. Only simple additions or ]
changes with some comment for him.

In <se8lag9odx40$.1ko5kq7eszy2u.dlg@40tude.net>, "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>On Sun, 12 Aug 2007 09:00:27 GMT, anon wrote:
>
>>    -- abort tasks.  But because get_name may be in the process of 
>>    -- obtaining data from standard_input. it may require a CR/LF 
>>    -- to be entered to fully abort the 'get_name' task.
>
>No, it should abort Get_Line immediately. The operations deferring abort
>are listed in 9.8(5).
>
>>  abort get_name ;
>
>Aborting tasks is a bad idea, almost always. If you have some shared
>objects which states might be changed outside an abort-deferred operation,
>then aborting will corrupt them. It is not always possible to do everything
>from a protected action (which is abort-deferred).
>
>Though asynchronous transfer of control is very much like abort, one can
>limit the scope of what gets aborted.
>
>-- 
>Regards,
>Dmitry A. Kazakov
>http://www.dmitry-kazakov.de




  reply	other threads:[~2007-08-12 21:39 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-11 17:03 Tasking issues shaunpatterson
2007-08-11 18:42 ` Dmitry A. Kazakov
2007-08-12 11:06   ` Simon Wright
2007-08-12 12:05     ` Dmitry A. Kazakov
2007-08-12 17:12       ` shaunpatterson
2007-08-12 18:03         ` Dmitry A. Kazakov
2007-08-12 22:10         ` Jeffrey R. Carter
2007-08-13 19:54         ` Simon Wright
2007-08-13 22:30           ` shaunpatterson
2007-08-14  7:10             ` Tasking issues => Book List anon
     [not found]     ` <13bulskfjvogv8e@corp.supernews.com>
2007-08-12 20:20       ` Tasking issues Simon Wright
2007-08-11 18:51 ` jimmaureenrogers
2007-08-11 19:08 ` Jeffrey R. Carter
2007-08-11 22:31 ` Steve
2007-08-12  9:00 ` anon
2007-08-12  9:43   ` Dmitry A. Kazakov
2007-08-12 21:39     ` anon [this message]
2007-08-12 22:15       ` Jeffrey R. Carter
2007-08-13  9:13         ` anon
2007-08-13 19:37           ` Simon Wright
2007-08-13 20:17             ` Markus E.L. 2
2007-08-14  0:40           ` Jeffrey R. Carter
2007-08-13  9:22       ` Dmitry A. Kazakov
2007-08-13 12:41         ` Larry Kilgallen
2007-08-13 13:22           ` Dmitry A. Kazakov
2007-08-12 21:03   ` Maciej Sobczak
2007-08-12 22:07   ` 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