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!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Feature suggestion: different task schedules Date: Sun, 23 Jul 2017 20:47:51 +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.2.1 Content-Language: en-US X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:47500 Date: 2017-07-23T20:47:51+02:00 List-Id: On 2017-07-23 14:31, Victor Porton wrote: > Dmitry A. Kazakov wrote: > >> One is that it is not composable. I expect a co-routine proposal to >> offer a possibility to implement stacked layered protocols. I don't see >> how that would be possible on task basis. A protocol implementation may >> not be a task object. > > I don't understand why it is not composable. A task may call another tasks. > Tasks may even call each others in a cycle. I need to see an example of a layered protocol implemented this way. > However I think, we may have some sort of problem about specifying something > in hypothetical Ada2020 what is similar to `yield from` in Python. I don't see why yield is even needed. In my view it must be a call with parameters which would in effect transfer control. > It seems > that for this we need to introduce something like "multi" accept statement, > but I did not yet thought about this. There is a problem with accept that it contains inversion in itself. More natural for a producer-consumer pair is when both make calls, maybe to a pseudo protected object, in order to pass control and data. Again I must see an example. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de