From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: multiple delay alternative Date: Tue, 6 Mar 2018 12:18:13 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <90838aa0-bd51-4913-b0cf-1ded5024c151@googlegroups.com> NNTP-Posting-Host: MyFhHs417jM9AgzRpXn7yg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 Content-Language: en-US X-Notice: Filtered by postfilter v. 0.8.3 Xref: reader02.eternal-september.org comp.lang.ada:50834 Date: 2018-03-06T12:18:13+01:00 List-Id: On 06/03/2018 11:31, Mehdi Saada wrote: >> If a protected function call is active, all waiting function calls (again parameters evaluated immediately) > Ok, I got this. Simultaneous, but blocked by use of protected procedures and entries. >> For subprograms of a protected object, the call is evaluated immediately, even if the protected object is busy. Then procedure calls are executed sequentially > Still don't get it, sorry... What's the difference *as far as waiting to be served one after the other* ? > I know, there's no guard, and the only thing that matter is if a procedure or entry is active at the same time. Ok. Then what... the caller tasks are still waiting to execute the procedure, one after the other, and before they are blocked... Just like with an entry ?? You see where I'm stucked ? Other subtleties don't concern me for now. I must get the essential difference in behavior first. The difference is that execution of the body of a protected function/procedure/entry is logically instant. This why blocking operations are prohibited within. Therefore a protected function or procedure logically never waits = never blocked. An entry call can be blocked and logically not instant until gets executed. Functions are like procedures except that logically allowed to run parallel to each other. What an implementation makes of all this is up to the vendor and machine architecture. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de