diff --git a/src/gui/ctrl/bus-term.hpp b/src/gui/ctrl/bus-term.hpp index c890c879e..c65ab3acb 100644 --- a/src/gui/ctrl/bus-term.hpp +++ b/src/gui/ctrl/bus-term.hpp @@ -146,7 +146,7 @@ namespace ctrl{ virtual BusTerm& routeAdd(ID,Tangible&); virtual void routeDetach(ID) noexcept; - bool isConnected() const noexcept; + bool isShortCircuit(ID) const noexcept; }; @@ -159,11 +159,12 @@ namespace ctrl{ theBus_.note (this->endpointID_, mark); } - /** @internal tie break */ + /** @internal circuit breaker, relevant for Nexus shutdown */ inline bool - BusTerm::isConnected() const noexcept + BusTerm::isShortCircuit(ID otherID) const noexcept { - return &theBus_ != this; + return &theBus_ == this + or otherID == endpointID_; } diff --git a/src/gui/ui-bus.cpp b/src/gui/ui-bus.cpp index 43e2f25bf..5a8d61752 100644 --- a/src/gui/ui-bus.cpp +++ b/src/gui/ui-bus.cpp @@ -216,7 +216,7 @@ namespace ctrl { void BusTerm::routeDetach(ID node) noexcept { - if (isConnected()) + if (not isShortCircuit(node)) theBus_.routeDetach (node); } diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 8884db201..2d8fb1aae 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -139,7 +139,8 @@ - + + @@ -7835,7 +7836,7 @@ - + @@ -7865,6 +7866,116 @@ + + + + + + + + + + + + + + + +

+ Die Lösung für diese wecheslseitige Abhängigkeit +

+

+ ist, den Nexus als Member im CoreService zu haben, +

+

+ weil man dann seine Addresse schon weiß, bevor er erzeugt ist. +

+

+ +

+

+ Dummerweise rettet mich dieser Trick nicht im Shutdown, +

+

+ denn hier nun läuft tatsächlicher Code aus dem Destruktor heraus! +

+ +
+
+ + + + + + + + + + + + + + +

+ bei einem echten Downstream könnte man dafür sorgen, +

+

+ daß er grundsätzlich vor dem Nexus weggeht. Aber nun kommt, auf dem Umweg +

+

+ über den Core-Service, der Nexus nach dem Nexus.... +

+ + +
+
+ + + + + + + + + +

+ ich will nicht damit anfangen, daß man einen Zeiger umsetzen kann.... +

+ + +
+ +
+
+
+
+ + + + + + + + + +

+ beendet Deregistrierung, +

+

+ wenn ein BusTerm sich selbst deregistriert +

+ + +
+ +
+ + + + + + +
@@ -7897,7 +8008,7 @@
- + @@ -8105,7 +8216,9 @@
- + + +