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=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,f15aeba9975c472f X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-10-01 00:27:27 PST Path: archiver1.google.com!news2.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!uni-berlin.de!tar-alcarin.cbb-automation.DE!not-for-mail From: Dmitry A. Kazakov Newsgroups: comp.lang.ada Subject: Re: Protected Entry Call Semantics Date: Wed, 01 Oct 2003 09:36:21 +0200 Message-ID: References: NNTP-Posting-Host: tar-alcarin.cbb-automation.de (212.79.194.111) Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de 1064993246 11825086 212.79.194.111 (16 [77047]) X-Newsreader: Forte Agent 1.8/32.548 Xref: archiver1.google.com comp.lang.ada:54 Date: 2003-10-01T09:36:21+02:00 List-Id: On 30 Sep 2003 21:19:15 GMT, Stephan Heinemann wrote: >Well, my problem is the "can be serviced" in C.9.5.3 (13). I am using >the Ravenscar profile and there may be only one task waiting on a >protected entry. Other tasks trigger that waiting task by opening the >associated barrier. Lets say there is one such triggering task that >accesses the protected object twice during its response >(just for example, the same could be done with two tasks, each >triggering once). The first access opens the barrier while the second >one closes it. >Now, some implementations may choose to let the triggering task >execute the protected action of the waiting task and position the >latter after the entry call for its resumption. For other >implementations, the waiting task executes its protected action itself >and therefore it depends on the scheduler whether the waiting task >may enter the protected object or not , i.e., if a time slice is given >to it or not. For the example given, this would be between the two >triggering tasks. >My problem is to formalise this situation somehow... >Do I need to take a particular implementation to be able to do so? >If yes, does anybody know how ORK/GNAT handles this situation? >The problem is that even both accesses could open the barrier and >I do not even know which access really triggered the waiting task, >i.e., which values where passed to the waiting task and when. >But how can I tell whether a deadline is missed or not if I do not >even know to which event the response belonged? >Would it be a too hard constraint to allow only at most one >triggering task possessing only one triggering access to a >particular protected object in this case? If you want to serialize triggering actions, why do not you implement this in the protected object? I mean, triggering an action should bring the object into a state where no further action can be triggered until the responding task finishes with that. [This would of course block triggering tasks. To avoid blocking you could use a queue of trigerring actions etc.] --- Regards, Dmitry Kazakov www.dmitry-kazakov.de