Sujet : Re: Ichbiah 2022 compiler mode
De : rosen (at) *nospam* adalog.fr (J-P. Rosen)
Groupes : comp.lang.adaDate : 12. Sep 2024, 11:04:58
Autres entêtes
Organisation : Adalog
Message-ID : <vbuarq$64hr$1@dont-email.me>
References : 1 2 3 4 5
User-Agent : Mozilla Thunderbird
Le 12/09/2024 à 06:46, Randy Brukardt a écrit :
I was (of course) presuming that "tasklets" would get those capabilities if
they were to replace tasks. That's what I meant about "suspension", which is
not currently allowed for threads in Ada (parallel code is not allowed to
call potentially blocking operations). If that was changed, then all forms
of existing task communication would be allowed.
Well, tasks are not only for speeding up code. They can be a very useful design tool (active objects, independant activities). I think the Ada model is clean and simple, I would hate to see it disappear.
I'm less certain about the value of priorities, most of the time, they don't
help writing correct Ada code. (You still need all of the protections
against race conditions and the like.) I do realize that they are a natural
way to express constraints on a program. So I admit I don't know in this
area, in particular if there are things that priorities are truly required
for.
If you had as many cores as tasks, you would not need priorities. Priorities are just optimization on how to manage cores when there are not enough of them.
I know that people use priorities to guarantee mutual exclusion, and other properties. All these algorithms were designed at the time of mono-CPU machines, but they fail on multi-cores. Nowadays, relying on priorities for anything else than optimization is bad -and dangerous- design.
-- J-P. RosenAdalog2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEXhttps://www.adalog.fr https://www.adacontrol.fr