Scheduler: implement the remaining API functions

...this completes the definition of the Scheduler-Service implementation
This commit is contained in:
Fischlurch 2023-11-09 23:46:42 +01:00
parent 2baf058198
commit ecf1a5a301
6 changed files with 313 additions and 46 deletions

View file

@ -101,6 +101,7 @@ namespace gear {
// standard copy operations acceptable
explicit operator uint32_t() const { return id_;}
explicit operator bool() const { return id_ != 0; }
friend bool operator== (ManifestationID const& a, ManifestationID const& b) { return a.id_ == b.id_; }
friend bool operator!= (ManifestationID const& a, ManifestationID const& b) { return not (a == b); }

View file

@ -484,7 +484,7 @@ namespace gear {
auto requiredNew = distance / _raw(epochStep_);
if (distance % _raw(epochStep_) > 0)
++requiredNew; // fractional: requested deadline lies within last epoch
alloc_.openNew(requiredNew); // Note: epochHandle now points to the first new Epoch
alloc_.openNew(requiredNew); // Note: nextEpoch now points to the first new Epoch
for ( ; 0 < requiredNew; --requiredNew)
{
REQUIRE (nextEpoch);

View file

@ -249,7 +249,8 @@ namespace gear {
void
activate (ManifestationID manID)
{
allowed_.insert (manID);
if (manID)
allowed_.insert (manID);
}
void

View file

@ -283,12 +283,51 @@ namespace gear {
/**
*
* Set the Scheduler to work on a new CalcStream.
* @param planningJob a »meta-Job« to schedule a chunk of render-Jobs.
* @param manID (optional) a manifestation-ID to be enabled for processing
* @note the planningJob will be dispatched _immediately now,_ which typically
* will cause its dispatch in the current thread (but that is not guaranteed).
* The _deadline_ is also set automatically to a very large leeway (1/10 sec),
* and the new planning job is marked as _compulsory_ implying that the
* Scheduler will [trigger emergency](\ref #triggerEmergency) if this deadline
* can not be met. Emergency will cause all PlayProcess to be paused.
* @remark it is up to the planning instance to use this mechanism properly; the idea
* is to [place follow-up jobs](\ref #continueMetaJob) repeatedly, always to
* define the next chunk of work jobs. If a ManifestationID is given, then
* obviously the work jobs must use the same ID, since jobs with an ID not
* [explicitly enabled](\ref SchedulerInvocation::activate) will be silently
* discarded (unless the ID is zero, which is always implicitly enabled).
* Moreover, the recommendation is to start planning with at least 20ms
* of remaining headroom, to ensure smooth allocation of capacity.
*/
void
seedCalcStream()
seedCalcStream (Job planningJob
,ManifestationID manID = ManifestationID())
{
UNIMPLEMENTED("get it going");
layer1_.activate(manID);
continueMetaJob (RealClock::now(), planningJob, manID);
}
/**
* Place a follow-up job-planning job into the timeline.
*/
void
continueMetaJob (Time nextStart
,Job planningJob
,ManifestationID manID = ManifestationID())
{
bool isCompulsory = true;
Time deadline = nextStart + DUTY_CYCLE_TOLERANCE;
// place the meta-Job into the timeline...
postChain ({activityLang_.buildMetaJob(planningJob, nextStart, deadline)
.post()
, nextStart
, deadline
, manID
, isCompulsory});
ensureDroppedGroomingToken();
}

View file

@ -117,7 +117,7 @@ namespace test {
/** @test cover properties and handling of Epochs (low-level)
* - demonstrate that Epoch is placed into an Extent
* - demonstrate that each Epoch is placed into an Extent
* - verify that both Extent and Epoch access the same memory block
* - demonstrate the standard setup and initialisation of an Epoch
* - allocate some Activities into the storage and observe free-managment
@ -191,7 +191,7 @@ namespace test {
for (uint i=extent.size()-2; i>1; --i)
gate.claimNextSlot();
// one final slot is left (beyond of the EpochGate itself)
// one final slot is left (beyond the EpochGate itself)
CHECK (isSameObject (*gate.next, epoch[1]));
CHECK (gate.filledSlots() == EXTENT_SIZ-2);
CHECK (gate.hasFreeSlot());
@ -210,7 +210,6 @@ namespace test {
CHECK ( gate.isAlive (Time(999,9)));
CHECK (not gate.isAlive (Time(0,10)));
CHECK (not gate.isAlive (Time(1,10)));
////////////////////////////////////////////////////////////////////////////////////////TICKET #1298 : actually use a GATE implementation and then also check the count-down latch
}

View file

@ -78650,9 +78650,6 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1693270676024" ID="ID_670456864" MODIFIED="1693270704990" TEXT="man k&#xf6;nnte vorm &#xdc;bergeben jedes POSTs die aktuelle Zeit pr&#xfc;fen..."/>
<node CREATED="1693270719026" ID="ID_842390392" MODIFIED="1693270832972" TEXT="die Planung mu&#xdf; im Grooming-Modus stattfinden">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1693270834579" ID="ID_362449143" MODIFIED="1693270967108" TEXT="damit ist ein &#xdc;berholen von Jobs aus dem aktuellen Chunk ausgeschlossen">
<richcontent TYPE="NOTE"><html>
<head/>
@ -78663,6 +78660,10 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</body>
</html></richcontent>
</node>
<node CREATED="1693270719026" ID="ID_842390392" MODIFIED="1699566672295" TEXT="die Planung mu&#xdf; im Grooming-Modus stattfinden">
<linktarget COLOR="#4d42d4" DESTINATION="ID_842390392" ENDARROW="Default" ENDINCLINATION="-552;30;" ID="Arrow_ID_565359964" SOURCE="ID_1361396246" STARTARROW="None" STARTINCLINATION="358;16;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
@ -78948,6 +78949,21 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<arrowlink COLOR="#fc5172" DESTINATION="ID_1834678491" ENDARROW="Default" ENDINCLINATION="-410;29;" ID="Arrow_ID_139741662" STARTARROW="None" STARTINCLINATION="-339;0;"/>
<linktarget COLOR="#ff3681" DESTINATION="ID_1642755650" ENDARROW="Default" ENDINCLINATION="-874;84;" ID="Arrow_ID_846448701" SOURCE="ID_1433064275" STARTARROW="None" STARTINCLINATION="-223;-228;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1699563656019" ID="ID_1361396246" MODIFIED="1699566672294" TEXT="Job-Planung mu&#xdf; aus Konsistenzgr&#xfc;nden in einem Job laufen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...damit sie das Grooming-Token hat und damit Zugriff auf die Scheduler-Ressourcen. Au&#223;erdem ist damit ein konsitenter Rahmen sichergestellt: geplante Startzeiten sollten fr&#252;hestend 20ms danach beginnen
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#3c55cf" DESTINATION="ID_916265093" ENDARROW="Default" ENDINCLINATION="-74;-350;" ID="Arrow_ID_1386478293" STARTARROW="None" STARTINCLINATION="673;31;"/>
<arrowlink COLOR="#4d42d4" DESTINATION="ID_842390392" ENDARROW="Default" ENDINCLINATION="-552;30;" ID="Arrow_ID_565359964" STARTARROW="None" STARTINCLINATION="358;16;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1686839683285" ID="ID_36707137" MODIFIED="1687191788043" TEXT="JobPlanning">
@ -78974,7 +78990,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693238755343" HGAP="29" ID="ID_1858134894" MODIFIED="1693239064719" TEXT="Deadline-Service f&#xfc;r &#xbb;free wheeling&#xab; und background rendering" VSHIFT="10">
<arrowlink COLOR="#683034" DESTINATION="ID_917322834" ENDARROW="Default" ENDINCLINATION="445;-22;" ID="Arrow_ID_57467075" STARTARROW="None" STARTINCLINATION="557;24;"/>
<arrowlink COLOR="#683034" DESTINATION="ID_917322834" ENDARROW="Default" ENDINCLINATION="445;-22;" ID="Arrow_ID_57467075" STARTARROW="None" STARTINCLINATION="494;26;"/>
<linktarget COLOR="#b84d5d" DESTINATION="ID_1858134894" ENDARROW="Default" ENDINCLINATION="348;-10;" ID="Arrow_ID_1937059043" SOURCE="ID_1162137081" STARTARROW="None" STARTINCLINATION="10;223;"/>
<linktarget COLOR="#743f58" DESTINATION="ID_1858134894" ENDARROW="Default" ENDINCLINATION="-547;24;" ID="Arrow_ID_313746889" SOURCE="ID_1276102583" STARTARROW="None" STARTINCLINATION="-1607;-121;"/>
<icon BUILTIN="flag-yellow"/>
@ -79765,7 +79781,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node CREATED="1684980982361" ID="ID_1863198468" MODIFIED="1684980987321" TEXT="Themen">
<node CREATED="1684980991406" ID="ID_1812192430" MODIFIED="1698948793241" TEXT="Timings nachf&#xfc;hren">
<arrowlink COLOR="#705783" DESTINATION="ID_1565158605" ENDARROW="Default" ENDINCLINATION="588;-13;" ID="Arrow_ID_516157232" STARTARROW="None" STARTINCLINATION="372;51;"/>
<arrowlink COLOR="#705783" DESTINATION="ID_1565158605" ENDARROW="Default" ENDINCLINATION="588;-13;" ID="Arrow_ID_516157232" STARTARROW="None" STARTINCLINATION="126;24;"/>
</node>
</node>
</node>
@ -80235,6 +80251,22 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</body>
</html></richcontent>
</node>
<node CREATED="1699563384878" ID="ID_28734392" LINK="#ID_394986223" MODIFIED="1699563462111" VSHIFT="6">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p style="text-align: center">
beide Probleme lassen sich nicht l&#246;sen &#8212;
</p>
<p style="text-align: center">
<i>..aber entsch&#228;rfen..</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#972e26" CREATED="1693224254426" ID="ID_135086138" MODIFIED="1693224295058" TEXT="Zielkonflikt bei &#x201e;erfundenen&#x201c; Deadlines">
<icon BUILTIN="clanbomber"/>
@ -80308,25 +80340,25 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688999216020" ID="ID_1652417442" MODIFIED="1689000686850" TEXT="Nutzungs-Zyklus">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1688999216020" ID="ID_1652417442" MODIFIED="1699563479356" TEXT="Nutzungs-Zyklus">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1688999221795" ID="ID_1575286737" MODIFIED="1693327452333" TEXT="der Term selbst ist transient">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688999245632" ID="ID_1036154230" MODIFIED="1689000708795">
<node COLOR="#338800" CREATED="1688999245632" ID="ID_1036154230" MODIFIED="1699563218151">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
aus dem Term k&#246;nnen die
aus dem Term gehen die
</p>
<p>
Instruct-Daten gewonnen werden
Scheduling-Daten hervor
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#95354f" DESTINATION="ID_61492355" ENDARROW="Default" ENDINCLINATION="-907;-55;" ID="Arrow_ID_1026469877" STARTARROW="None" STARTINCLINATION="-985;134;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1693174049090" ID="ID_21670308" MODIFIED="1693269809516" TEXT="was wird &#xfc;berhaupt ben&#xf6;tigt?">
<icon BUILTIN="help"/>
<node CREATED="1693174068255" ID="ID_324012035" MODIFIED="1693174093851">
@ -80343,15 +80375,23 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1693174135510" ID="ID_1652013577" MODIFIED="1693269047632" TEXT="f&#xfc;r diese aber stets eine Aktivierungs-Zeit &#x2259; &#xbb;Water-Level&#xab;">
<arrowlink COLOR="#bb6884" DESTINATION="ID_331711778" ENDARROW="Default" ENDINCLINATION="309;8;" ID="Arrow_ID_743236550" STARTARROW="None" STARTINCLINATION="180;9;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693269074177" ID="ID_715918201" MODIFIED="1693269098396" TEXT="&#x27f9; Konsequenz: es wird eine POST-Activity erwartet">
<node CREATED="1693269074177" ID="ID_715918201" MODIFIED="1699563126557" TEXT="&#x27f9; Konsequenz: es wird eine POST-Activity erwartet">
<node CREATED="1697503384674" ID="ID_478110624" MODIFIED="1697503477075" TEXT="timeWindow.life &#x27fc; &#xbb;when&#xab;-Parameter f&#xfc;r Scheduling">
<arrowlink COLOR="#6289a0" DESTINATION="ID_1952039720" ENDARROW="Default" ENDINCLINATION="814;-69;" ID="Arrow_ID_95530766" STARTARROW="None" STARTINCLINATION="658;36;"/>
</node>
<node CREATED="1697503353470" ID="ID_1942594803" MODIFIED="1697503382998" TEXT="timeWindow.dead &#x27fc; Deadline f&#xfc;r den BlockFlow-Allocator"/>
</node>
<node COLOR="#435e98" CREATED="1699562986721" ID="ID_132607334" LINK="#ID_5485655" MODIFIED="1699563082181" TEXT="es werden weitere Informationen zur Relevanz ben&#xf6;tigt">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1699563100616" ID="ID_1191499530" MODIFIED="1699563131784" TEXT="&#x27f9; l&#xe4;uft in jedem Fall auf einen Builder hinaus"/>
</node>
<node COLOR="#338800" CREATED="1699563136890" ID="ID_1816494945" MODIFIED="1699563238511" TEXT="das tats&#xe4;chliche API wird kompleter (und limitierter)">
<arrowlink COLOR="#576f6b" DESTINATION="ID_1142273023" ENDARROW="Default" ENDINCLINATION="-1210;-1187;" ID="Arrow_ID_417210596" STARTARROW="None" STARTINCLINATION="-575;30;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1688999304504" ID="ID_564520426" MODIFIED="1693327475634" TEXT="der Term bleibt auch nach dem Instruct() valide">
<node COLOR="#338800" CREATED="1688999304504" ID="ID_564520426" MODIFIED="1699545900403" TEXT="der Term bleibt auch nach dem post() valide">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1688999331796" ID="ID_1974598754" MODIFIED="1693327479852" TEXT="Builder-Operationen sind vorher g&#xfc;ltig">
<icon BUILTIN="button_ok"/>
@ -80391,7 +80431,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1688999553494" ID="ID_370064738" MODIFIED="1693271022228" TEXT="Analyse der Concurrency-Situation">
<arrowlink COLOR="#fe123a" DESTINATION="ID_1716270984" ENDARROW="Default" ENDINCLINATION="-2763;178;" ID="Arrow_ID_883377376" STARTARROW="None" STARTINCLINATION="657;50;"/>
<icon BUILTIN="flag-pink"/>
<node COLOR="#435e98" CREATED="1693271026513" HGAP="45" ID="ID_578093558" MODIFIED="1693271085681" VSHIFT="10">
<node COLOR="#435e98" CREATED="1693271026513" HGAP="45" ID="ID_578093558" MODIFIED="1699567052537" VSHIFT="10">
<richcontent TYPE="NODE"><html>
<head/>
<body>
@ -80400,8 +80440,23 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da nun wirklich jeder Dispatch am Grooming-Token <i>&#8222;vorbei mu&#223;&#8220;&#160; &#8212; </i>theoretisch w&#228;re es sogar darstellbar, die eigentliche Job-Planung au&#223;erhalb und ohne Grooming-Token zu machen; die neuen Jobs gehen dann eben in die Instruction-Queue. Auch eine Notification (welche das Gate dekrementieren k&#246;nnte) geht durch das &#955;-post, welches direkt durch Layer2.postDispatch geht, und damit entweder versucht, das Grooming-Token zu erlangen, oder eben in die Instruct-Queue einstellt
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#3f59c9" DESTINATION="ID_504534684" ENDARROW="Default" ENDINCLINATION="405;-19;" ID="Arrow_ID_1923865634" STARTARROW="None" STARTINCLINATION="-29;133;"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1699563567271" HGAP="54" ID="ID_916265093" MODIFIED="1699563851855" TEXT="Wichtig: stets nur auf diesem Weg planen" VSHIFT="15">
<arrowlink COLOR="#579fc9" DESTINATION="ID_1878072938" ENDARROW="Default" ENDINCLINATION="344;30;" ID="Arrow_ID_29503486" STARTARROW="None" STARTINCLINATION="22;126;"/>
<linktarget COLOR="#3c55cf" DESTINATION="ID_916265093" ENDARROW="Default" ENDINCLINATION="-74;-350;" ID="Arrow_ID_1386478293" SOURCE="ID_1361396246" STARTARROW="None" STARTINCLINATION="673;31;"/>
<icon BUILTIN="clanbomber"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1693269900769" ID="ID_734843401" MODIFIED="1693269922734" TEXT="kann erst im Rahmen der Integration mit Job-Planning gekl&#xe4;rt werden">
@ -80411,7 +80466,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node COLOR="#338800" CREATED="1688999319686" ID="ID_1484039920" MODIFIED="1693327501431" TEXT="der Term kann jederzeit ohne Seiteneffekt gel&#xf6;scht werden">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1688999694596" ID="ID_504534684" MODIFIED="1693271078574" TEXT="Term-Build setzt GroomingToken vorraus">
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1688999694596" ID="ID_504534684" MODIFIED="1699563529026" TEXT="Term-Build setzt GroomingToken vorraus">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
@ -80423,6 +80478,23 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<linktarget COLOR="#3f59c9" DESTINATION="ID_504534684" ENDARROW="Default" ENDINCLINATION="405;-19;" ID="Arrow_ID_1923865634" SOURCE="ID_578093558" STARTARROW="None" STARTINCLINATION="-29;133;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1699563508108" ID="ID_565152299" MODIFIED="1699563525418" TEXT="mu&#xdf; durch den Aufrufkontext sichergestellt werden">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1699563536669" ID="ID_1878072938" MODIFIED="1699563756594" TEXT="dieser ist selbst ein (Meta)Job">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
und hat damit garantiert das Grooming-Token
</p>
</body>
</html></richcontent>
<linktarget COLOR="#579fc9" DESTINATION="ID_1878072938" ENDARROW="Default" ENDINCLINATION="344;30;" ID="Arrow_ID_29503486" SOURCE="ID_916265093" STARTARROW="None" STARTINCLINATION="22;126;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
@ -80433,8 +80505,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068378225" ID="ID_975357334" MODIFIED="1690068414755" TEXT="ActivityLang &#x2261; Rahmen und Laufzeitsystem">
<linktarget COLOR="#3d344c" DESTINATION="ID_975357334" ENDARROW="Default" ENDINCLINATION="-4;-17;" ID="Arrow_ID_56581087" SOURCE="ID_462121305" STARTARROW="Default" STARTINCLINATION="6;32;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068444705" ID="ID_1936713026" MODIFIED="1690068449569" TEXT="stellt Setup bereit">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1690068444705" ID="ID_1936713026" MODIFIED="1699567142132" TEXT="stellt Setup bereit">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1690068450704" ID="ID_716451982" MODIFIED="1693431638406" TEXT="Dependency-Injection">
<icon BUILTIN="button_ok"/>
<node CREATED="1690068675474" ID="ID_834417186" MODIFIED="1690068685091" TEXT="reine Konstruktor-DI gen&#xfc;gt">
@ -80444,8 +80516,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068469725" ID="ID_1098945451" MODIFIED="1690068479132" TEXT="&#x3bb;-Bindings">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1690068469725" ID="ID_1098945451" MODIFIED="1699567140369" TEXT="&#x3bb;-Bindings">
<icon BUILTIN="button_ok"/>
<node CREATED="1690068487379" ID="ID_967744995" MODIFIED="1690068517443" TEXT="Teile der Activity-Ausf&#xfc;hrungen aktiveren externe Funktionalit&#xe4;t"/>
<node CREATED="1690068633296" ID="ID_490552261" MODIFIED="1690068663039" TEXT="diese m&#xfc;ssen mit dem Setup bereits mit hergestellt werden"/>
<node CREATED="1690068518127" ID="ID_72274125" MODIFIED="1690068609740" TEXT="diese wird normalerweise im Scheduler Layer-2 bereitgestellt">
@ -80456,8 +80528,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068712621" ID="ID_663408731" MODIFIED="1690068720581" TEXT="Abstraktion: ExecutionContext">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1690068712621" ID="ID_663408731" MODIFIED="1699567130353" TEXT="Abstraktion: ExecutionContext">
<icon BUILTIN="button_ok"/>
<node CREATED="1690068752736" ID="ID_1532008023" MODIFIED="1690494850607" TEXT="enth&#xe4;lt die &#x3bb;-Bindings">
<arrowlink COLOR="#e3fddf" DESTINATION="ID_229335349" ENDARROW="Default" ENDINCLINATION="46;-190;" ID="Arrow_ID_382638651" STARTARROW="None" STARTINCLINATION="-301;39;"/>
<linktarget COLOR="#dae9fa" DESTINATION="ID_1532008023" ENDARROW="Default" ENDINCLINATION="-184;505;" ID="Arrow_ID_61418953" SOURCE="ID_1073489318" STARTARROW="None" STARTINCLINATION="630;34;"/>
@ -80509,7 +80581,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node CREATED="1690490265626" ID="ID_691752926" MODIFIED="1690490274359" TEXT="wird eingebunden als Template-Parameter">
<node COLOR="#435e98" CREATED="1690490265626" FOLDED="true" ID="ID_691752926" MODIFIED="1699567176393" TEXT="wird eingebunden als Template-Parameter">
<node COLOR="#338800" CREATED="1690490280656" ID="ID_1134844863" MODIFIED="1690490315482" TEXT="direkt in Activity selber">
<icon BUILTIN="button_ok"/>
</node>
@ -80591,12 +80663,12 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1693316292138" ID="ID_1313498082" MODIFIED="1693440864259" TEXT="Ausf&#xfc;hrungs-Logik">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1693316312133" ID="ID_1707163520" MODIFIED="1697497953582" TEXT="Bedeutung des kontextuellen Zeitfensters?">
<node COLOR="#338800" CREATED="1693316292138" ID="ID_1313498082" MODIFIED="1699567152802" TEXT="Ausf&#xfc;hrungs-Logik">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1693316312133" ID="ID_1707163520" MODIFIED="1699567158536" TEXT="Bedeutung des kontextuellen Zeitfensters?">
<linktarget COLOR="#7d7d95" DESTINATION="ID_1707163520" ENDARROW="Default" ENDINCLINATION="-66;1053;" ID="Arrow_ID_1162895595" SOURCE="ID_1428475873" STARTARROW="None" STARTINCLINATION="803;63;"/>
<icon BUILTIN="help"/>
<node CREATED="1693316323123" ID="ID_118526613" MODIFIED="1693316925262" TEXT="noch nicht recht klar...">
<node COLOR="#435e98" CREATED="1693316323123" ID="ID_118526613" MODIFIED="1699567233998" TEXT="noch nicht recht klar...">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
@ -80605,8 +80677,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</p>
</body>
</html></richcontent>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1699567240161" HGAP="68" ID="ID_1589694579" MODIFIED="1699567279664" STYLE="bubble" TEXT="(inzwischen schon)" VSHIFT="-4">
<edge COLOR="#2813ae"/>
<font ITALIC="true" NAME="SansSerif" SIZE="9"/>
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1693316943383" ID="ID_816321833" MODIFIED="1693317032517" TEXT="Redundanz in den Deadline-Angaben">
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1693316943383" FOLDED="true" ID="ID_816321833" MODIFIED="1699567307253" TEXT="Redundanz in den Deadline-Angaben">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
@ -80615,6 +80692,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node CREATED="1693317159003" ID="ID_231581526" MODIFIED="1693317168673" TEXT="Deadline f&#xfc;r den BlockFlow-Allocator"/>
<node CREATED="1693317169874" ID="ID_259509888" MODIFIED="1693317180028" TEXT="Deadline-Check im GATE"/>
<node COLOR="#5b280f" CREATED="1693317215964" ID="ID_983950185" MODIFIED="1693317373254" TEXT="redundante Deadline-Pr&#xfc;fung im Scheduler sinnvoll?">
@ -80658,7 +80736,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node CREATED="1697500165153" ID="ID_1967372083" MODIFIED="1697500296652" TEXT="Bedeutung des &#xbb;when&#xab;-Parameters">
<node COLOR="#435e98" CREATED="1697500165153" FOLDED="true" ID="ID_1967372083" MODIFIED="1699567305397" TEXT="Bedeutung des &#xbb;when&#xab;-Parameters">
<icon BUILTIN="info"/>
<node CREATED="1697501206702" ID="ID_327384351" MODIFIED="1697501307538" TEXT="POST-Activity: data_.timeWindow.life &#x27fc; &#xbb;when&#xab;-Parameter"/>
<node CREATED="1697500302194" ID="ID_454559013" MODIFIED="1697500322768" TEXT="in &#x3bb;-post | POST-Eingang">
<node CREATED="1697500328916" ID="ID_1952039720" MODIFIED="1697503477075" TEXT="der Triggerzeitpunkt">
@ -81122,6 +81201,19 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1681398712198" ID="ID_1529988864" MODIFIED="1681398770503" TEXT="Schedule &#x2261; Priorisierung und Verteilung an die Worker"/>
<node CREATED="1681398678151" ID="ID_1921320233" MODIFIED="1681398704971" TEXT="Control &#x2261; Beobachtung und Zustands-Aktualisierung"/>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1699567400583" ID="ID_1805979989" MODIFIED="1699567595728" TEXT="Play-Proze&#xdf;">
<icon BUILTIN="hourglass"/>
</node>
<node COLOR="#435e98" CREATED="1699567397056" ID="ID_1111153236" MODIFIED="1699567591682" TEXT="Scheduler">
<icon BUILTIN="info"/>
<node CREATED="1699567412006" ID="ID_1349496227" MODIFIED="1699567426127" TEXT="Scheduler-API: Eingang von der Planung"/>
<node CREATED="1699567426716" ID="ID_1278770752" MODIFIED="1699567463730" TEXT="SchedulerService: Verbindungen und Kapazit&#xe4;tsplanung"/>
<node CREATED="1699567565622" ID="ID_578353407" MODIFIED="1699567584295" TEXT="LoadController: Selbstregulierung und Kapazit&#xe4;ts-Steuerung"/>
<node CREATED="1699567465549" ID="ID_354480855" MODIFIED="1699567483062" TEXT="Layer-2: Concurrency und Dispatch"/>
<node CREATED="1699567483834" ID="ID_252865294" MODIFIED="1699567496373" TEXT="Layer-1: Queue-Implementierung"/>
<node CREATED="1699567498680" ID="ID_1842900991" MODIFIED="1699567516105" TEXT="Activity-Lang: Steuerung der Ausf&#xfc;rhungs-Struktur"/>
<node CREATED="1699567516725" ID="ID_536129711" MODIFIED="1699567556603" TEXT="BlockFlow: garantierte Lebensdauer-Zeit"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1680563595176" ID="ID_773353840" MODIFIED="1680563601552" TEXT="Aufruf/Verdrahtung im Player">
<icon BUILTIN="flag-yellow"/>
@ -81150,7 +81242,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1680564304940" ID="ID_1657236591" MODIFIED="1697664155547" TEXT="Scheduler entwerfen">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1680564304940" ID="ID_1657236591" MODIFIED="1699571818475" TEXT="Scheduler entwerfen">
<arrowlink COLOR="#93236a" DESTINATION="ID_1753880750" ENDARROW="Default" ENDINCLINATION="-499;-50;" ID="Arrow_ID_1018529334" STARTARROW="None" STARTINCLINATION="-219;1274;"/>
<linktarget COLOR="#f6e1c2" DESTINATION="ID_1657236591" ENDARROW="Default" ENDINCLINATION="-1219;87;" ID="Arrow_ID_49470357" SOURCE="ID_59027079" STARTARROW="None" STARTINCLINATION="-2189;368;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1687471254704" ID="ID_1902396309" MODIFIED="1687471266974" TEXT="Basis und Rahmen">
@ -82015,7 +82108,18 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1698937110289" ID="ID_1837336933" MODIFIED="1698937115982" TEXT="reduziert Header-Includes"/>
<node CREATED="1698937116771" ID="ID_231850405" MODIFIED="1698937120938" TEXT="verbessert Verst&#xe4;ndlichkeit"/>
<node CREATED="1698937116771" ID="ID_231850405" MODIFIED="1699573981078" TEXT="verbessert Verst&#xe4;ndlichkeit">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<i>das</i>&#160;ist das ausschlaggebende Argument: Jemand, der erst mal nur den Scheduler-Header liest, w&#228;re sonst sofort erschlagen von technischen Details, und w&#252;rde den Wald vor lauter B&#228;umen nicht mehr sehen. Zumal Scheduler selber nochmal zerlegt wird in einen Header-Anteil und eine eigene translation-unit (scheduler.cpp)
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#e1d6c7" COLOR="#463227" CREATED="1698945910380" ID="ID_1122976270" MODIFIED="1698946107167" TEXT="Dom&#xe4;nen-Struktur zeigt sich">
<richcontent TYPE="NOTE"><html>
<head/>
@ -82030,7 +82134,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698937122167" ID="ID_4829396" MODIFIED="1698937490736" TEXT="kann dort Inteface-Typen definieren">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1699245684722" ID="ID_1883772504" MODIFIED="1699245829024" TEXT="Zusammenarbeit mit SchedulerService erm&#xf6;glichen">
<linktarget COLOR="#fedfb1" DESTINATION="ID_1883772504" ENDARROW="Default" ENDINCLINATION="-261;14;" ID="Arrow_ID_416423581" SOURCE="ID_788545423" STARTARROW="None" STARTINCLINATION="242;-83;"/>
<linktarget COLOR="#fedfb1" DESTINATION="ID_1883772504" ENDARROW="Default" ENDINCLINATION="-261;14;" ID="Arrow_ID_416423581" SOURCE="ID_788545423" STARTARROW="None" STARTINCLINATION="193;-33;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1699245702520" ID="ID_1053537499" MODIFIED="1699245792944" TEXT="m&#xf6;glichst wenig virtuelle Funktionen">
@ -82043,7 +82147,35 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node CREATED="1698936458463" ID="ID_1013196495" MODIFIED="1698936467425" TEXT="bedeutet: virtuelle Funktionen">
<node CREATED="1698936468473" ID="ID_1724852576" MODIFIED="1698936484199" TEXT="&#x27f9; Konsequenz: nur Proze&#xdf;-Level-API"/>
<node CREATED="1698936561745" ID="ID_725627912" MODIFIED="1698936583898" TEXT="auch die Activity-Lang soll verborgen bleiben"/>
<node COLOR="#5b280f" CREATED="1698936561745" ID="ID_725627912" MODIFIED="1699573624922" TEXT="auch die Activity-Lang soll verborgen bleiben">
<icon BUILTIN="button_cancel"/>
<node CREATED="1699573633992" ID="ID_1916986829" MODIFIED="1699573853826" TEXT="das l&#xe4;&#xdf;t sich in der Strenge nicht ohne Weiteres realisieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und zwar wegen der Builder-Notation; wegen der M&#246;glichkeit, sp&#228;ter noch Dependencies aufzuschalten, mu&#223; der activity::Term im Builder eingebettet sein, also bei der Definition der Builder-Klasse bekannt. Einziger Ausweg w&#228;re, in die &#228;u&#223;ere Builder-Klasse einen opaque buffer zu legen, und die Implementierung in scheduler.cpp nachzutragen. Diese L&#246;sung halte ich f&#252;r unn&#246;tig komplex (wiewohl sie keinen relevanten Performance-overhead erzeugt)
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1699573648854" ID="ID_716393193" MODIFIED="1699573724694" TEXT="ist aber auch nicht wirklich notwendig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn die betreffenden Header sind nicht wirklich <i>schwergewichtig</i>&#160; &#8212;<b>&#160;</b>im Besonderen da die typischen Clients des SchedulerService selber Implementierungs-Code sind
</p>
</body>
</html>
</richcontent>
</node>
</node>
<node CREATED="1698936663551" ID="ID_1985217972" MODIFIED="1698937090405" TEXT="normalen Job &#xfc;ber abstrahiertes Builder-API einstellen">
<richcontent TYPE="NOTE"><html>
<head/>
@ -82055,6 +82187,35 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</html></richcontent>
<linktarget COLOR="#997b81" DESTINATION="ID_1985217972" ENDARROW="Default" ENDINCLINATION="863;46;" ID="Arrow_ID_1068642654" SOURCE="ID_41803972" STARTARROW="None" STARTINCLINATION="793;49;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1699574005686" ID="ID_1637382420" MODIFIED="1699574018197" TEXT="brauche noch sinnvollen virtuellen Zugang zum Scheduler">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1699574037212" ID="ID_621021823" MODIFIED="1699574131476" TEXT="postChain w&#xe4;re ein Kandidat, ist aber zweifelhaft">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn dabei handelt es sich nun wirklich um eine zentrale Implementierungs-Funktion, die auch aus der Implementierung heraus aufgerufen wird. Selbst wenn der Optimizer wahrscheinlich die <i>monomorphic optimization </i>beherrscht, macht man sowas einfach nicht.
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1699574329467" ID="ID_1038685203" MODIFIED="1699574971826" TEXT="zumal die anderen high-level-Funktionen auch virtual sein m&#xfc;ssen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...so ziemlich jede von denen greift in der Implementierung auf die Komponenten im Scheduler zu.
</p>
</body>
</html>
</richcontent>
</node>
</node>
</node>
</node>
</node>
@ -82078,6 +82239,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1697756908166" ID="ID_1142273023" MODIFIED="1699497966267" TEXT="Wrapper-Builder um den Activity-Term legen">
<linktarget COLOR="#576f6b" DESTINATION="ID_1142273023" ENDARROW="Default" ENDINCLINATION="-1210;-1187;" ID="Arrow_ID_417210596" SOURCE="ID_1816494945" STARTARROW="None" STARTINCLINATION="-575;30;"/>
<linktarget COLOR="#33aaf4" DESTINATION="ID_1142273023" ENDARROW="Default" ENDINCLINATION="-737;663;" ID="Arrow_ID_891496003" SOURCE="ID_175313196" STARTARROW="None" STARTINCLINATION="1218;-76;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1698945250261" ID="ID_780386157" MODIFIED="1699376300350" TEXT="Zusatz-Angaben zur Relevanz">
@ -82194,8 +82356,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1699245611846" FOLDED="true" ID="ID_788545423" MODIFIED="1699498007295" TEXT="Definitions-Struktur und Code-Anordnung kl&#xe4;ren">
<arrowlink COLOR="#fedfb1" DESTINATION="ID_1883772504" ENDARROW="Default" ENDINCLINATION="-261;14;" ID="Arrow_ID_416423581" STARTARROW="None" STARTINCLINATION="242;-83;"/>
<node COLOR="#338800" CREATED="1699245611846" FOLDED="true" ID="ID_788545423" MODIFIED="1699573896906" TEXT="Definitions-Struktur und Code-Anordnung kl&#xe4;ren">
<arrowlink COLOR="#fedfb1" DESTINATION="ID_1883772504" ENDARROW="Default" ENDINCLINATION="-261;14;" ID="Arrow_ID_416423581" STARTARROW="None" STARTINCLINATION="193;-33;"/>
<arrowlink COLOR="#f5dffd" DESTINATION="ID_3688190" ENDARROW="Default" ENDINCLINATION="-410;-597;" ID="Arrow_ID_1041094005" STARTARROW="None" STARTINCLINATION="-664;318;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1699245733434" ID="ID_1697507405" MODIFIED="1699245746917" TEXT="die post()-Implementierung mu&#xdf; den eigentlichen Scheduler sehen"/>
@ -82261,8 +82423,50 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697757025906" ID="ID_180161439" MODIFIED="1697757063868" TEXT="seedCalcStream()">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1697757025906" ID="ID_180161439" MODIFIED="1699575045104" TEXT="seedCalcStream()">
<icon BUILTIN="pencil"/>
<node CREATED="1699568049090" ID="ID_1596574245" MODIFIED="1699568057075" TEXT="hat sehr viel limitiertere Aufgaben">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1699568058043" ID="ID_1348913314" MODIFIED="1699568067002" TEXT="daher ist hier kein expliziter Builder notwendig"/>
<node CREATED="1699568068327" ID="ID_1707263469" MODIFIED="1699568075312" TEXT="kann direkt auf die unterliegenden APIs durchgehen"/>
<node CREATED="1699568097669" ID="ID_669864822" MODIFIED="1699568115788" TEXT="einige Parameter werden fest vorgegeben">
<node CREATED="1699568121776" ID="ID_33668425" MODIFIED="1699568155219" TEXT="die Deadline: analog zum &#xbb;Tick&#xab;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
also sehr gro&#223;z&#252;gig
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1699568156544" ID="ID_635029922" MODIFIED="1699568164782" TEXT="es ist immer ein Meta-Job"/>
<node CREATED="1699568165537" ID="ID_788135445" MODIFIED="1699568185049">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
er ist stets <i>compulsory</i>
</p>
</body>
</html>
</richcontent>
</node>
</node>
<node CREATED="1699568192950" ID="ID_46078853" MODIFIED="1699568201950" TEXT="weitere Parameter sind nur optional">
<node CREATED="1699568225289" ID="ID_1953407534" MODIFIED="1699568238756" TEXT="brauche daher zwei Varianten"/>
<node CREATED="1699568239935" ID="ID_1918919265" MODIFIED="1699568264056" TEXT="Start-Offset ist per default &#xbb;now&#xab;"/>
<node CREATED="1699568273591" ID="ID_138761713" MODIFIED="1699568281494" TEXT="aber die ManifestationID wird man meist angeben">
<node CREATED="1699568288833" ID="ID_1628158423" MODIFIED="1699568304195" TEXT="denn auch eine bereits abgeschickte Planungs-Fortschreibung kann obsolet werden"/>
<node CREATED="1699568305542" ID="ID_145276801" MODIFIED="1699568314497" TEXT="sie wird ja um eine erhebliche Zeit in die Zukunft geschoben"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1697757058002" ID="ID_603254465" MODIFIED="1698867045291" TEXT="terminateProcessing()">
<icon BUILTIN="button_ok"/>
@ -88964,7 +89168,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1684980732965" ID="ID_1914429002" MODIFIED="1684980742528" TEXT="Thema: Timing-Updates">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1684980744406" ID="ID_1565158605" LINK="https://issues.lumiera.org/ticket/1302" MODIFIED="1698948793241" TEXT="#1302 maintain consistent job timings">
<linktarget COLOR="#705783" DESTINATION="ID_1565158605" ENDARROW="Default" ENDINCLINATION="588;-13;" ID="Arrow_ID_516157232" SOURCE="ID_1812192430" STARTARROW="None" STARTINCLINATION="372;51;"/>
<linktarget COLOR="#705783" DESTINATION="ID_1565158605" ENDARROW="Default" ENDINCLINATION="588;-13;" ID="Arrow_ID_516157232" SOURCE="ID_1812192430" STARTARROW="None" STARTINCLINATION="126;24;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
@ -95083,7 +95287,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693238542895" ID="ID_917322834" MODIFIED="1693238802819" TEXT="Deadlines for &#xbb;free wheeling&#xab; and background rendering">
<arrowlink COLOR="#e7367a" DESTINATION="ID_1212740184" ENDARROW="Default" ENDINCLINATION="12;-24;" ID="Arrow_ID_1622880291" STARTARROW="None" STARTINCLINATION="104;5;"/>
<linktarget COLOR="#683034" DESTINATION="ID_917322834" ENDARROW="Default" ENDINCLINATION="445;-22;" ID="Arrow_ID_57467075" SOURCE="ID_1858134894" STARTARROW="None" STARTINCLINATION="557;24;"/>
<linktarget COLOR="#683034" DESTINATION="ID_917322834" ENDARROW="Default" ENDINCLINATION="445;-22;" ID="Arrow_ID_57467075" SOURCE="ID_1858134894" STARTARROW="None" STARTINCLINATION="494;26;"/>
<linktarget COLOR="#fe6147" DESTINATION="ID_917322834" ENDARROW="Default" ENDINCLINATION="631;-14;" ID="Arrow_ID_1361409427" SOURCE="ID_1655832509" STARTARROW="None" STARTINCLINATION="953;54;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
@ -95414,6 +95618,29 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1698201429620" ID="ID_1635005942" MODIFIED="1698201443678" TEXT="und dem Vermeiden vorgreifender Festlegungen"/>
</node>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1699571704643" ID="ID_1753880750" MODIFIED="1699571808810" TEXT="offengebliebene Fragen...?">
<linktarget COLOR="#93236a" DESTINATION="ID_1753880750" ENDARROW="Default" ENDINCLINATION="-499;-50;" ID="Arrow_ID_1018529334" SOURCE="ID_1657236591" STARTARROW="None" STARTINCLINATION="-219;1274;"/>
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1699571826546" FOLDED="true" ID="ID_841781324" MODIFIED="1699571977489" TEXT="brauchen wir &#xfc;berhaupt ein POST-Verb?">
<icon BUILTIN="hourglass"/>
<node CREATED="1699571849031" ID="ID_162465543" MODIFIED="1699571881135" TEXT="es wurde eingef&#xfc;hrt, um ein (start,deadline)-Fenster &#x201e;kontextuell&#x201c; bereitzustellen"/>
<node CREATED="1699571882718" ID="ID_306783739" MODIFIED="1699571918305" TEXT="au&#xdf;erdem f&#xfc;hrt die Aktivierung via &#x3bb;-post wieder in den Dispatch"/>
<node CREATED="1699571920304" ID="ID_645005092" MODIFIED="1699571938972">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
allerdings haben wir jetzt praktisch immer einen<i>&#160;direkten Eingang</i>
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1699571939723" ID="ID_308661587" MODIFIED="1699571957595" TEXT="und dabei werden (start, deadline) jeweils nochmal explizit gegeben"/>
</node>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1698449820247" ID="ID_759735068" MODIFIED="1698449830478" TEXT="Fragen f&#xfc;r sp&#xe4;ter...">
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1698449617586" ID="ID_1388229244" MODIFIED="1698450803071" TEXT="hot-polling on Grooming-Token?">