+ dieses Prinzip könnte man aufweichen — ich halte das aber für eine schlechte Idee, denn der Scheduler ist auch so schon schwer genug zu verstehen, auch die Activity-Language beginnt schon zu »bröseln« ... gefährliche Tendenz. Meine Einschätzung ist, wir planen ehr so 10 Jobs pro Metajob-Lauf, d.h. das wären dann Größenordnung 500-1000µs Zeit, in der jedwede andere Management-Tätigkeit geblockt ist (renderjobs laufen trotzdem weiter). Sofern diese Annahme nicht zutrifft, möchte ich dafür konkrete Beweise sehen +
+ + ++ commit 5c6354882de1be63724221022b374bd559a499b0 +
++ Author: Ichthyostega <prg@ichthyostega.de> +
++ Date: Wed Nov 8 20:58:32 2023 +0100 +
++ +
++ Scheduler: solve problem with transport from entrance-queue +
++ +
++ The test case "scheduleRenderJob()" -- while deliberately operated +
++ quite artificially with a disabled WorkForce (so the test can check +
++ the contents in the queue and then progress manually -- led to discovery +
++ of an open gap in the logic: in the (rare) case that a new task is +
++ added ''from the outside'' without acquiring the Grooming-Token, then +
++ the new task could sit in the entrace queue, in worst case for 50ms, +
++ until the next Scheduler-»Tick« routinely sweeps this queue. Under +
++ normal conditions however, each dispatch of another activity will +
++ also sweep the entrance queue, yet if there happens to be no other +
++ task right now, a new task could be stuck. +
++ +
++ Thinking through this problem also helped to amend some aspects +
++ of Grooming-Token handling and clarified the role of the API-functions. +
+ + ++ aber sie dann auch zusätzlich in das post() eingesetzt +
+ + ++ ...dann erlangt er es, und behält es +
+ + ++ und: die Allokation findet hier statt +
+ + ++ term_ = move( +
++ theScheduler_->activityLang_ +
++ .buildCalculationJob (job_, start_,death_)); +
+ + ++ ...eben wenn jemand von außen kommt... das ist i.d.R. nur beim seedCalcStream() der Fall +
+ + ++ zum einen ist das nicht genau das feste Raster, und außerdem braucht der OS-Scheduler sowiso immer etwas länger +
+ + ++ sage bewußt »dokumentieren«, denn diese Logik hier ist derart einfach zu implementieren, daß eigentlich kein Test notwendig wäre +
+ + ++ das ist nämlich unverhältnismäßig schwer im Test zu verifizieren, und steht in keinem Verhältnis zur Aufgabe +
+ + +