comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Ada-WinRT bindings - Alpha release
Date: Fri, 13 Apr 2018 20:18:16 -0700 (PDT)
Date: 2018-04-13T20:18:16-07:00	[thread overview]
Message-ID: <f9d17422-872f-4af4-9677-a55cd770f9b0@googlegroups.com> (raw)
In-Reply-To: <f5ac66b2-876f-41f5-8281-6964b41dc718@googlegroups.com>

On Friday, April 13, 2018 at 4:05:41 AM UTC-5, alby....@gmail.com wrote:
> Please feel free to raise issues/question/recommendations for improvements either
> via GitHub or on his forum

After taking a look at the current Ada-WinRT analogue of C#'s await, I posted your second issue, which is really just brainstorming food for thought
1) regarding how C#'s Roslyn compiler actually implements await on WinRT-component async methods in processor-native machine code or on .NET async methods in the CLR
and
2) regarding how C++/WinRT proposes 2 different solutions—
2.1) one a Microsoft-esque mixin-interface for taming the callback alternative design (that you mention on Ada-WinRT's README.md)
and
2.2 the other a solution based on C++'s emerging co-routine feature.

In addition to the 2 you list on the README.md (and in addition to any designs resulting from cross-pollination from the food-for-thought above), wouldn't there be a 3rd Ada task-based solution as well?  Especially one where the task (as costly-to-spawn kernel thread) is not elaborated/spawned at the time of invocation of the async function, but rather where a configurable-sized task pool is where the-operation-has-now-completed handlers all execute for the plethora of hundreds and hundreds of async functions throughout the WinRT-component framework.  Indeed, perhaps there exist multiple such pools:  one for Category-A async operations, another for Category-B async operations, and so forth, whatever the categorization scheme therein would be.  (As the world marches onward to many-core processors and ccNUMA processor-confederations, each Category there could be thought of as a processor core, or, in an processor confederation, a whole processor.)

Does anyone know of a general-purpose Ada library boilerplate analogue of the C# await for async subroutines?  (I.e., not a custom-crafted design for each async invocation)  (And i.e., not waiting years for Ada co-routines in Ada2020, if ever)  E.g., analogous to the mixing-interface implements<MyAsync, IAsyncAction, IAsyncInfo> in the blog posting https://kennykerr.ca/2018/03/09/cppwinrt-producing-async-objects


  parent reply	other threads:[~2018-04-14  3:18 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-13  9:05 Ada-WinRT bindings - Alpha release alby.gamper
2018-04-13 15:03 ` Dan'l Miller
2018-04-13 18:47 ` Dan'l Miller
2018-04-13 20:06 ` Luke A. Guest
2018-04-13 21:13   ` Dan'l Miller
2018-04-13 21:58     ` Paul Rubin
2018-04-13 23:11       ` Dan'l Miller
2018-04-13 23:15         ` alby.gamper
2018-04-13 23:17           ` alby.gamper
2018-04-13 23:20           ` Dan'l Miller
2018-04-14  4:09         ` Paul Rubin
2018-04-14  5:14           ` alby.gamper
2018-04-14  6:42             ` Paul Rubin
2018-04-14 15:28       ` Lucretia
2018-04-13 23:11     ` alby.gamper
2018-04-13 23:16       ` Dan'l Miller
2018-04-14  7:13       ` Simon Wright
2018-04-14  9:21         ` alby.gamper
2018-04-14 14:13         ` Dan'l Miller
2018-04-14 14:41           ` Simon Wright
2018-04-14 22:28             ` Dan'l Miller
2018-04-13 22:57   ` Simon Wright
2018-04-14  3:18 ` Dan'l Miller [this message]
2018-04-14  9:21 ` gorgelo
2018-04-14  9:44   ` alby.gamper
replies disabled

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