comp.lang.ada
 help / color / mirror / Atom feed
From: Richard Riehle <richard@adaworks.com>
Subject: Re: tasks, protected types and entries
Date: Sun, 17 Mar 2002 11:44:54 -0800
Date: 2002-03-17T19:36:55+00:00	[thread overview]
Message-ID: <3C94F235.80C7166A@adaworks.com> (raw)
In-Reply-To: %12l8.9656$%_6.1717935@news11-gui.server.ntli.net

"chris.danx" wrote:

> What is the difference between an entry and a procedure?

This is one of the most important and least often address issue
in Ada.  In my classroom, after we have started our unit on
tasking, I have my students recite, in unison,

               "An entry has a queue."

That is so fundamental, and so overlooked.   I believe it is a
starting point for understanding all the associated mechanisms.
The properties of the queue itself, and behavior of its enclosing
task or protected object can be understood only when one
grasps this simple idea.    Yet I encounter programmers who
have been using Ada for years who still don't know this.

> ... a procedure will always execute regardless of any
> condition, but that an entry can have a guard to allow/prevent its execution
> if a given condition is satisfied.

There are no guards on subprograms (procedures and functions).  If there
were, they would be called pre-conditions.    In fact, protected entry
barriers, and task entry guards, are simply a variation-on-the-theme of
pre-conditions.

Richard Riehle




  parent reply	other threads:[~2002-03-17 19:44 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-03-17 14:50 tasks, protected types and entries chris.danx
2002-03-17 14:55 ` chris.danx
2002-03-17 15:46   ` Jim Rogers
2002-03-17 16:49     ` Sergey Koshcheyev
2002-03-17 19:46       ` Robert A Duff
2002-03-17 19:44 ` Richard Riehle [this message]
2002-03-17 20:06   ` Ehud Lamm
2002-03-17 21:53   ` Pat Rogers
2002-03-18  1:42     ` Jeffrey Carter
2002-03-18  5:14       ` Pat Rogers
2002-03-18  0:36   ` Bo Sanden
2002-03-29  0:10   ` chris.danx
2002-03-18 16:41 ` john mann
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox