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!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Task safe containers? Help needed. Date: Sun, 8 Oct 2017 18:05:02 +0200 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: MajGvm9MbNtGBKE7r8NgYA.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 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 X-Notice: Filtered by postfilter v. 0.8.2 Content-Language: en-US Xref: news.eternal-september.org comp.lang.ada:48397 Date: 2017-10-08T18:05:02+02:00 List-Id: On 2017-10-08 17:10, reinert wrote: > About your first option: Putting the containers in a protected > object makes the container functions "private" and not directly available > outside the protected object. Right? Which is good, since they are unsafe. > But your other options also somehow complicates :-) Not at all. > A compromise seems to be necessary :-) There is no compromise, each method has its use. > Maybe the first option anyway > facilitates cleanest code? No. The cleanest code would be per delegation. Ada has none. Then there are issues with interface functions while most relevant synchronization mechanisms considered mutating. The Rosen's trick is used to work that around. A problem for monitor (#2.b) is to have an unconstrained result, since task entries cannot return such. > There must be a reason for the invention of > protected types. The reason was to add an OO view on synchronization as a complement to the procedural view tasks offer. The implementation provided by protected objects was chosen to be most efficient, powerful, safe, verifiable and universal. Which comes with certain limitations. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de