Library/Application: attempt to switch OutputDirector
...hitting a roadblock however: The existing Threads in the Lumiera application were effectively "detached" But the C++14 framework requires us to keep the Thread-object alive
This commit is contained in:
parent
cb15b43489
commit
b00d435ab6
2 changed files with 58 additions and 7 deletions
|
|
@ -29,9 +29,9 @@
|
|||
#include "steam/play/play-service.hpp"
|
||||
#include "steam/play/output-manager.hpp"
|
||||
#include "steam/play/output-director.hpp"
|
||||
#include "vault/thread-wrapper.hpp"
|
||||
#include "lib/thread.hpp"
|
||||
|
||||
using vault::Thread;
|
||||
using lib::Thread;
|
||||
|
||||
|
||||
namespace steam {
|
||||
|
|
@ -102,10 +102,11 @@ namespace play {
|
|||
if (not shutdown_initiated_)
|
||||
{
|
||||
shutdown_initiated_ = true;
|
||||
Thread ("Output shutdown supervisor",
|
||||
[=]{
|
||||
bringDown (completedSignal);
|
||||
});
|
||||
Thread{"Output shutdown supervisor"
|
||||
,[=]{
|
||||
bringDown (completedSignal);
|
||||
}}
|
||||
.detach();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80019,6 +80019,50 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1696468379848" ID="ID_1146069423" MODIFIED="1696468675806" TEXT="Ergänzung: BackgroundThread">
|
||||
<linktarget COLOR="#bc3562" DESTINATION="ID_1146069423" ENDARROW="Default" ENDINCLINATION="-134;397;" ID="Arrow_ID_516910789" SOURCE="ID_137837629" STARTARROW="None" STARTINCLINATION="-99;-4;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1696468398477" ID="ID_1775921981" MODIFIED="1696468422766" TEXT="neue Anforderung: komplett abgekoppelt">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1696468424018" ID="ID_1127252428" MODIFIED="1696468584146" TEXT="ergibt sich aus dem Protokoll der C++14 - Threads">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...diese erzwingen, daß das Thread-Objekt während der gesamten Ausführung der Thread-Funktion erhalten bleibt; dies Design erscheint auch sinnvoll
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1696468446119" ID="ID_328360890" MODIFIED="1696468533131" TEXT="unser bisheriger Thread-Wrapper konnte das (wegen dem Threadpool)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
der bisherige Lumiera-Threadwrapper hat zwar ein Thread-Handle gehalten, das aber letztlich beim Threadpool registriert war. Daher war das Thread-Objekt selber im Grunde verzichtbar (es sei denn, man hat davon abgeleitet und dort weitere Felder untergebracht)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1696468721033" ID="ID_1633697433" MODIFIED="1696468747969" TEXT="alle bisher realisierten Subsystem-Threads verhalten sich so">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1696468596155" ID="ID_1909710868" MODIFIED="1696468616300" TEXT="Design: auf den neuen Thread-Wrapper aufsetzen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1696468627430" ID="ID_1189676257" MODIFIED="1696468763145" TEXT="Anforderungen">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1696468151894" ID="ID_1613034704" MODIFIED="1696468650111" TEXT="der Thread-Funktor muß das Thread-Objekt als selbst halten"/>
|
||||
<node CREATED="1696468197640" ID="ID_1523718397" MODIFIED="1696468221818" TEXT="der Aufruf-context gibt jeden Bezug dazu auf"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1695394205547" ID="ID_1719816317" MODIFIED="1696015377362" TEXT="Tests umstellen und modernisieren">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1695394270093" FOLDED="true" ID="ID_585437655" MODIFIED="1696007768225" TEXT="ThreadWrapper_test">
|
||||
|
|
@ -81112,7 +81156,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1696029465121" ID="ID_786350998" MODIFIED="1696029583638" TEXT="gtk-lumiera.cpp"/>
|
||||
<node CREATED="1696029465121" ID="ID_786350998" MODIFIED="1696029583638" TEXT="gtk-lumiera.cpp">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1696468041645" ID="ID_137837629" MODIFIED="1696468682025" TEXT="brauche einen Thread, den man in den Hintergrund schieben kann">
|
||||
<arrowlink COLOR="#bc3562" DESTINATION="ID_1146069423" ENDARROW="Default" ENDINCLINATION="-134;397;" ID="Arrow_ID_516910789" STARTARROW="None" STARTINCLINATION="-99;-4;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node CREATED="1696468692302" ID="ID_1299573982" MODIFIED="1696468713991" TEXT="SteamDispatcher und OutputDirector brauchen das ebenso"/>
|
||||
</node>
|
||||
<node CREATED="1696029465122" ID="ID_871343805" MODIFIED="1696029593893" TEXT="output-director.cpp"/>
|
||||
<node COLOR="#338800" CREATED="1696029465122" FOLDED="true" ID="ID_556208204" MODIFIED="1696358985114" TEXT="steam-dispatcher.cpp">
|
||||
<linktarget COLOR="#71be6f" DESTINATION="ID_556208204" ENDARROW="Default" ENDINCLINATION="1038;-401;" ID="Arrow_ID_1257115855" SOURCE="ID_1718267866" STARTARROW="None" STARTINCLINATION="602;40;"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue