Scheduler: design-problems while integrating deadline

the attempt to integrate additional deadline and significance parameters
unveils a design problem due to the layering of contexts

- the Activity-Language attempts to abstract away the ''Scheduler mechanics''
- but this implementation logic now needs to pass additional parameters
- and notably there is the possibility of direct re-scheduling from within
  the Activity-Dispatch

The symptom of this problem is that it's no longer possible
to implement the ExecutionCtx.post() function in the real Scheduler-context
This commit is contained in:
Fischlurch 2023-11-03 02:33:02 +01:00
parent b49de0738d
commit 747e522c7e
4 changed files with 123 additions and 42 deletions

View file

@ -218,7 +218,13 @@ namespace gear {
activity::Proc
postDispatch (Activity* chain, Time when
,EXE& executionCtx
,SchedulerInvocation& layer1)
,SchedulerInvocation& layer1
//////////////////////////////////////////////////////////////////////////////////////////////OOO API / Design problem with "context" and significance-Params
, Time dead =Time::NEVER //////////////////////////////////TODO booom!!
, ManifestationID manID =ManifestationID()
, bool compulsory = false
//////////////////////////////////////////////////////////////////////////////////////////////OOO API / Design problem with "context" and significance-Params
)
{
if (!chain) return activity::SKIP;
@ -227,9 +233,9 @@ namespace gear {
return ActivityLang::dispatchChain (chain, executionCtx);
else
if (holdsGroomingToken (thisThread()))
layer1.feedPrioritisation (*chain, when);
layer1.feedPrioritisation (*chain, when, dead, manID, compulsory);
else
layer1.instruct (*chain, when);
layer1.instruct (*chain, when, dead, manID, compulsory);
return activity::PASS;
}
};

View file

@ -254,6 +254,12 @@ namespace gear {
UNIMPLEMENTED("wrap the ActivityTerm");
}
//////////////////////////////////////////////////////////////////////////////////////////////OOO the role of this function remains unclear; currently used from »Tick«
activity::Proc postChain (Activity*, Time start
, Time dead =Time::ANYTIME
, ManifestationID manID =ManifestationID()
, bool isCompulsory = false);
/**
* The worker-Functor: called by the active Workers from the
@ -500,6 +506,18 @@ namespace gear {
}
//////////////////////////////////////////////////////////////////////////////////////////////OOO the role of this function remains unclear; currently used from »Tick«
inline activity::Proc
Scheduler::postChain (Activity* chain, Time start, Time dead
,ManifestationID manID, bool isCompulsory)
{
auto& ctx = ExecutionCtx::from (*this);
return layer2_.postDispatch (chain, start, ctx, layer1_
//////////////////////////////////////////////////////////////////////////////////////////////OOO API / Design problem with "context" and significance-Params
,dead,manID,isCompulsory);
}
/**
* »Tick-hook« : code to maintain sane running status.
* This function will be invoked [regularly](\ref DUTY_CYCLE_PERIOD) while the scheduler
@ -517,7 +535,10 @@ namespace gear {
{
// consolidate queue content
layer1_.feedPrioritisation();
//////////////////////////////////////////////////////////////////////OOO clean-up of outdated tasks here
// clean-up of outdated tasks here
while (layer1_.isOutdated (now) and not layer1_.isOutOfTime(now))
layer1_.pullHead();
// protect against missing the deadline of a compulsory task
if (layer1_.isOutOfTime (now))
{
triggerEmergency();
@ -533,9 +554,8 @@ namespace gear {
{// prepare next duty cycle »tick«
Time nextTick = now + DUTY_CYCLE_PERIOD;
Time deadline = nextTick + DUTY_CYCLE_TOLERANCE;
auto& ctx = ExecutionCtx::from (*this);
Activity& tickActivity = activityLang_.createTick (deadline);
ctx.post(nextTick, &tickActivity, ctx);
postChain (&tickActivity, nextTick, deadline, ManifestationID(), true);
}
}

View file

@ -28,7 +28,6 @@
#include "lib/test/run.hpp"
#include "vault/gear/scheduler-invocation.hpp"
#include "lib/util.hpp"
#include "lib/test/diagnostic-output.hpp"///////////////////TODO
using test::Test;
using util::isSameObject;

View file

@ -80655,8 +80655,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node COLOR="#435e98" CREATED="1693317527566" ID="ID_393706947" MODIFIED="1693317722746" TEXT="Fazit">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="forward"/>
<node CREATED="1693317530251" ID="ID_496219214" MODIFIED="1697937932990" TEXT="betrachte die Redundanz als Spielraum zur Beweglichkeit">
<node CREATED="1693317530251" ID="ID_496219214" MODIFIED="1698972118959" TEXT="betrachte die Redundanz als Spielraum zur Beweglichkeit">
<arrowlink COLOR="#5adeb2" DESTINATION="ID_598148359" ENDARROW="Default" ENDINCLINATION="52;-139;" ID="Arrow_ID_155448561" STARTARROW="None" STARTINCLINATION="638;34;"/>
<linktarget COLOR="#cd1d68" DESTINATION="ID_496219214" ENDARROW="Default" ENDINCLINATION="1100;780;" ID="Arrow_ID_1973257942" SOURCE="ID_970794288" STARTARROW="Default" STARTINCLINATION="-1;-184;"/>
</node>
<node CREATED="1693317673355" ID="ID_258047795" MODIFIED="1693317696718" TEXT="Zeitfenster-Parameter sollten innerhalb eines Terms konstant sein"/>
<node CREATED="1693317617453" ID="ID_812974850" MODIFIED="1693317653450" TEXT="auf die kontextuellen Parameter kann weitgehend verzichtet werden"/>
@ -83846,18 +83847,18 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node COLOR="#338800" CREATED="1698808300122" ID="ID_1808480702" MODIFIED="1698808313387" TEXT="(Konzept scheint aufzugehen)"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1698542388722" ID="ID_1120963605" MODIFIED="1698543129256" TEXT="Queue bereinigen">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698542396065" ID="ID_1705516567" MODIFIED="1698543118152" TEXT="mu&#xdf; auch gel&#xf6;schte oder verfallene Eintr&#xe4;ge beseitigen">
<arrowlink COLOR="#7e4dc3" DESTINATION="ID_768314841" ENDARROW="Default" ENDINCLINATION="362;-65;" ID="Arrow_ID_464500099" STARTARROW="None" STARTINCLINATION="213;11;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1698542388722" ID="ID_1120963605" MODIFIED="1698971265232" TEXT="Queue bereinigen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1698542396065" ID="ID_1705516567" MODIFIED="1698971267185" TEXT="mu&#xdf; auch gel&#xf6;schte oder verfallene Eintr&#xe4;ge beseitigen">
<arrowlink COLOR="#4d7fc3" DESTINATION="ID_768314841" ENDARROW="Default" ENDINCLINATION="362;-65;" ID="Arrow_ID_464500099" STARTARROW="None" STARTINCLINATION="213;11;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1698543132047" ID="ID_1879818036" MODIFIED="1698543148250" TEXT="kann auch gleich noch feedPrioritisation() machen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1698534523065" ID="ID_1249909001" MODIFIED="1698544865983" TEXT="BlockFlow pflegen">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1698534523065" ID="ID_1249909001" MODIFIED="1698971275293" TEXT="BlockFlow pflegen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1698534530622" ID="ID_1453816295" MODIFIED="1698544865368" TEXT="der Tick l&#xf6;st die BlockFlow-Bereinigung aus">
<icon BUILTIN="button_ok"/>
</node>
@ -83907,6 +83908,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1698530661134" ID="ID_345977666" MODIFIED="1698530674141" TEXT="mu&#xdf; Entgleisen der Steuermechanismen erkennen"/>
<node CREATED="1698530762981" ID="ID_1141545060" MODIFIED="1698530779783" TEXT="und dann die Verarbeitung sauber auslaufen lassen"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1698977581315" HGAP="36" ID="ID_1091029245" MODIFIED="1698977618208" TEXT="Grooming-Token korrekt handhaben" VSHIFT="8">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
@ -84052,9 +84056,12 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533674384" ID="ID_1227874220" MODIFIED="1698534658603" TEXT="Scheduler-Emergency vorsehen">
<arrowlink COLOR="#ea5540" DESTINATION="ID_1515660165" ENDARROW="Default" ENDINCLINATION="-1517;105;" ID="Arrow_ID_1696922321" STARTARROW="None" STARTINCLINATION="912;-77;"/>
<linktarget COLOR="#9a5079" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="133;12;" ID="Arrow_ID_967532278" SOURCE="ID_979357340" STARTARROW="None" STARTINCLINATION="241;-7;"/>
<linktarget COLOR="#d54a7e" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="-1477;121;" ID="Arrow_ID_677451247" SOURCE="ID_748059800" STARTARROW="None" STARTINCLINATION="-536;-12;"/>
<linktarget COLOR="#2c6489" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="133;12;" ID="Arrow_ID_967532278" SOURCE="ID_979357340" STARTARROW="None" STARTINCLINATION="241;-7;"/>
<linktarget COLOR="#544ad5" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="-1477;121;" ID="Arrow_ID_677451247" SOURCE="ID_748059800" STARTARROW="None" STARTINCLINATION="-536;-12;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1698977581315" HGAP="36" ID="ID_1460743865" MODIFIED="1698977618208" TEXT="Grooming-Token korrekt handhaben" VSHIFT="8">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
@ -84090,8 +84097,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1697982898279" ID="ID_1086820599" MODIFIED="1697982926481" TEXT="verfallene Activities d&#xfc;rfen wiederverwendet werden">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1698542519485" ID="ID_768314841" MODIFIED="1698970344746" TEXT="Bereinigung in die normale Verarbeitung integrieren">
<linktarget COLOR="#7e4dc3" DESTINATION="ID_768314841" ENDARROW="Default" ENDINCLINATION="362;-65;" ID="Arrow_ID_464500099" SOURCE="ID_1705516567" STARTARROW="None" STARTINCLINATION="213;11;"/>
<node COLOR="#338800" CREATED="1698542519485" FOLDED="true" ID="ID_768314841" MODIFIED="1698970344746" TEXT="Bereinigung in die normale Verarbeitung integrieren">
<linktarget COLOR="#4d7fc3" DESTINATION="ID_768314841" ENDARROW="Default" ENDINCLINATION="362;-65;" ID="Arrow_ID_464500099" SOURCE="ID_1705516567" STARTARROW="None" STARTINCLINATION="213;11;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1698542534903" ID="ID_1065770396" MODIFIED="1698542579305" TEXT="Achtung: nur unter Grooming-Token">
<icon BUILTIN="clanbomber"/>
@ -84220,27 +84227,26 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
brauche generische Informationsfunktion <font face="Monospaced" color="#0d0fb9">isOutdated()</font>
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698970133343" ID="ID_1886746867" MODIFIED="1698970148917" TEXT="mu&#xdf; vom Scheduler high-Level-API bedient werden">
<icon BUILTIN="bell"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533220909" ID="ID_1286321982" MODIFIED="1698533274744" TEXT="Flag und Steuerung f&#xfc;r &#xbb;verbindliche Activities&#xab;">
<linktarget COLOR="#f13e82" DESTINATION="ID_1286321982" ENDARROW="Default" ENDINCLINATION="107;492;" ID="Arrow_ID_1399415601" SOURCE="ID_326051657" STARTARROW="None" STARTINCLINATION="922;-57;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1698533220909" ID="ID_1286321982" MODIFIED="1698971499681" TEXT="Flag und Steuerung f&#xfc;r &#xbb;verbindliche Activities&#xab;">
<linktarget COLOR="#3ebbf1" DESTINATION="ID_1286321982" ENDARROW="Default" ENDINCLINATION="107;492;" ID="Arrow_ID_1399415601" SOURCE="ID_326051657" STARTARROW="None" STARTINCLINATION="922;-57;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1698533783922" ID="ID_1279644850" MODIFIED="1698970114815" TEXT="blockiert das Verwerfen nach Deadline">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533800719" ID="ID_979357340" MODIFIED="1698533837777" TEXT="wird dann vom Tick/DutyCycle erkannt">
<arrowlink COLOR="#9a5079" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="133;12;" ID="Arrow_ID_967532278" STARTARROW="None" STARTINCLINATION="241;-7;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1698533800719" ID="ID_979357340" MODIFIED="1698971521640" TEXT="wird dann vom Tick/DutyCycle erkannt">
<arrowlink COLOR="#2c6489" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="133;12;" ID="Arrow_ID_967532278" STARTARROW="None" STARTINCLINATION="241;-7;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1698945154395" ID="ID_1664760512" MODIFIED="1698970165200" TEXT="erweiterte Pr&#xfc;fungen in die normale Verarbeitung integrieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1698945192477" ID="ID_1809715507" MODIFIED="1698970058102" TEXT="brauche nun zus&#xe4;tzliche Daten beim Einplanen">
<node COLOR="#338800" CREATED="1698945192477" FOLDED="true" ID="ID_1809715507" MODIFIED="1698970058102" TEXT="brauche nun zus&#xe4;tzliche Daten beim Einplanen">
<icon BUILTIN="button_ok"/>
<node CREATED="1698946253457" ID="ID_1811524315" MODIFIED="1698946256631" TEXT="Defaults">
<node CREATED="1698946293491" ID="ID_537001260" MODIFIED="1698946298907" TEXT="sinnvoll f&#xfc;r Tests"/>
@ -84285,11 +84291,52 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698945215604" ID="ID_1778628995" MODIFIED="1698946166942" TEXT="Scheduler high-level-API erweitern">
<arrowlink COLOR="#3d3aa9" DESTINATION="ID_780386157" ENDARROW="Default" ENDINCLINATION="69;74;" ID="Arrow_ID_103420327" STARTARROW="None" STARTINCLINATION="317;25;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1698971859240" HGAP="82" ID="ID_1814368786" MODIFIED="1698971899517" TEXT="Problem: &#x3bb;-post &#xfc;bermittelt nicht zwingend eine Deadline" VSHIFT="17">
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1698971900742" ID="ID_970794288" MODIFIED="1698972278874" TEXT="Problem bedingt durch die Offenheit der Activity-Language">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, das ist latent ein Design-Problem &#8212; welches ich derzeit nicht l&#246;sen kann, da mir der Gesamt&#252;berblick noch fehlt, und ich <i>genau deshalb </i>dieses offene Design gew&#228;hlt habe
</p>
</body>
</html>
</richcontent>
<arrowlink COLOR="#cd1d68" DESTINATION="ID_496219214" ENDARROW="Default" ENDINCLINATION="1100;780;" ID="Arrow_ID_1973257942" STARTARROW="Default" STARTINCLINATION="-1;-184;"/>
</node>
<node CREATED="1698972217673" ID="ID_1012249644" MODIFIED="1698972251202">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>kann </i>es auch gar nicht, denn die Activity selber kennt i.A. keine Deadline
</p>
</body>
</html>
</richcontent>
</node>
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1698976477150" ID="ID_1307962302" MODIFIED="1698976496606" TEXT="die Bedeutungs-Ebenen schichten sich hier nicht sauber">
<icon BUILTIN="broken-line"/>
<node CREATED="1698976502827" ID="ID_429532581" MODIFIED="1698976539535" TEXT="Manifestation und compulsory werden erst auf Scheduler-Level bedeutsam"/>
<node CREATED="1698976540742" ID="ID_1531605944" MODIFIED="1698976573680" TEXT="die Deadline gibt es auf Activity-Language-Ebene &#x2014; aber nur als Gate-Check"/>
<node CREATED="1698976601846" ID="ID_792276520" MODIFIED="1698976677711" TEXT="die Activity-Language soll aber genau von den Scheduler-Abl&#xe4;ufen abstrahieren"/>
<node CREATED="1698976678515" ID="ID_203481682" MODIFIED="1698976708963" TEXT="Sie mu&#xdf; aber durch den abstrahierten Kontext hindurch propagieren k&#xf6;nnen"/>
<node CREATED="1698976759992" ID="ID_1975784916" MODIFIED="1698976784377" TEXT="die Semantik sollte sich &#x201e;gem&#xe4;&#xdf; Kontext&#x201c; sinnvoll erweitern"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1698976787213" ID="ID_1115119952" MODIFIED="1698976852090" TEXT="die Kontext-Abstraktion mu&#xdf; dieses Problem absorbieren">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1698946201921" ID="ID_1058086166" MODIFIED="1698963474934" TEXT="Informationsfunktionen erg&#xe4;nzen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1698946217933" ID="ID_1697537017" MODIFIED="1698970050764" TEXT="transparentes Verwerfen">
<node COLOR="#338800" CREATED="1698946217933" FOLDED="true" ID="ID_1697537017" MODIFIED="1698970050764" TEXT="transparentes Verwerfen">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1698948806933" ID="ID_420754882" MODIFIED="1698970047714" TEXT="wo ansetzen?">
<node CREATED="1698948815117" ID="ID_736157754" MODIFIED="1698948823278" TEXT="es mu&#xdf; eine Mutations-Funktion sein"/>
@ -84323,8 +84370,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
damit: direkt in <b><font face="Monospaced" color="#610da9">findWork</font></b><font face="Monospaced" color="#610da9">(now)</font>
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1698969992698" ID="ID_413808337" MODIFIED="1698970038839">
<richcontent TYPE="NODE"><html>
@ -95418,13 +95464,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533069058" ID="ID_1475771662" MODIFIED="1698533129903" TEXT="klares Trennkriterium einf&#xfc;hren">
<node COLOR="#435e98" CREATED="1698533069058" ID="ID_1475771662" MODIFIED="1698971466447" TEXT="klares Trennkriterium einf&#xfc;hren">
<linktarget COLOR="#3f3aee" DESTINATION="ID_1475771662" ENDARROW="Default" ENDINCLINATION="-1121;-88;" ID="Arrow_ID_211999245" SOURCE="ID_696019318" STARTARROW="None" STARTINCLINATION="1410;120;"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533152440" ID="ID_326051657" MODIFIED="1698533633384" TEXT="Flag f&#xfc;r verbindlichen Task in den Scheduler einbauen">
<arrowlink COLOR="#f13e82" DESTINATION="ID_1286321982" ENDARROW="Default" ENDINCLINATION="107;492;" ID="Arrow_ID_1399415601" STARTARROW="None" STARTINCLINATION="922;-57;"/>
<linktarget COLOR="#df3563" DESTINATION="ID_326051657" ENDARROW="Default" ENDINCLINATION="482;26;" ID="Arrow_ID_550869434" SOURCE="ID_1704365524" STARTARROW="None" STARTINCLINATION="423;25;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1698533152440" ID="ID_326051657" MODIFIED="1698971485135" TEXT="Flag f&#xfc;r verbindlichen Task in den Scheduler einbauen">
<arrowlink COLOR="#3ebbf1" DESTINATION="ID_1286321982" ENDARROW="Default" ENDINCLINATION="107;492;" ID="Arrow_ID_1399415601" STARTARROW="None" STARTINCLINATION="922;-57;"/>
<linktarget COLOR="#35b0df" DESTINATION="ID_326051657" ENDARROW="Default" ENDINCLINATION="482;26;" ID="Arrow_ID_550869434" SOURCE="ID_1704365524" STARTARROW="None" STARTINCLINATION="423;25;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1698526632870" ID="ID_1680559422" MODIFIED="1698526704177">
@ -95519,14 +95565,14 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<linktarget COLOR="#fd2f46" DESTINATION="ID_1153107499" ENDARROW="Default" ENDINCLINATION="524;-25;" ID="Arrow_ID_251741761" SOURCE="ID_1189633297" STARTARROW="None" STARTINCLINATION="420;464;"/>
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533344228" ID="ID_1704365524" MODIFIED="1698533633384" TEXT="der Tick aktualisiert jeweils den Queue-Head">
<arrowlink COLOR="#df3563" DESTINATION="ID_326051657" ENDARROW="Default" ENDINCLINATION="482;26;" ID="Arrow_ID_550869434" STARTARROW="None" STARTINCLINATION="423;25;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1698533344228" ID="ID_1704365524" MODIFIED="1698971421581" TEXT="der Tick aktualisiert jeweils den Queue-Head">
<arrowlink COLOR="#35b0df" DESTINATION="ID_326051657" ENDARROW="Default" ENDINCLINATION="482;26;" ID="Arrow_ID_550869434" STARTARROW="None" STARTINCLINATION="423;25;"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533408036" ID="ID_748059800" MODIFIED="1698533723760" TEXT="wenn eine verbindliche Aktivit&#xe4;t &#xfc;berfahren wird &#xd83e;&#xdc32; Scheduler-Emergency">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1698533408036" ID="ID_748059800" MODIFIED="1698971458273" TEXT="wenn eine verbindliche Aktivit&#xe4;t &#xfc;berfahren wird &#xd83e;&#xdc32; Scheduler-Emergency">
<arrowlink COLOR="#b44670" DESTINATION="ID_269636711" ENDARROW="Default" ENDINCLINATION="204;-1082;" ID="Arrow_ID_1625681464" STARTARROW="None" STARTINCLINATION="-1259;48;"/>
<arrowlink COLOR="#d54a7e" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="-1477;121;" ID="Arrow_ID_677451247" STARTARROW="None" STARTINCLINATION="-536;-12;"/>
<icon BUILTIN="flag-yellow"/>
<arrowlink COLOR="#544ad5" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="-1477;121;" ID="Arrow_ID_677451247" STARTARROW="None" STARTINCLINATION="-536;-12;"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1698530399254" ID="ID_1046746147" MODIFIED="1698530408833" TEXT="Au&#xdf;en-&#xdc;berwachung...">
@ -95538,6 +95584,16 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1698530454718" ID="ID_1982008339" MODIFIED="1698530612783" TEXT="mu&#xdf; vor dem BlockFlow-Clean-up sitzen">
<arrowlink COLOR="#ed3471" DESTINATION="ID_355476974" ENDARROW="Default" ENDINCLINATION="-616;43;" ID="Arrow_ID_729257748" STARTARROW="None" STARTINCLINATION="689;49;"/>
</node>
<node CREATED="1698971338638" ID="ID_1616058266" MODIFIED="1698971382127" TEXT="Warnschwelle == Deadline der periodischen &#xbb;Tick&#xab;-Activity">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
derzeit eingestellt auf 50ms
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1698529860655" ID="ID_315208147" MODIFIED="1698529868790" TEXT="es mu&#xdf; einen sauberen Abbruch geben">