skindesigner - bad locking order for vdr-2.3.x

  • Tokens {currentrecording}, {nextrecording}, {isRecording} and {devices[recording]} in displaychannel will not work anymore.

    This is not true.

  • Ich hatte mit SkinFlatPlus auch den einen oder anderen Deadlock. Das Problem war da das gleiche, dass die aktiven Timer irgendwo in SetChannel abgerufen wurden. Ich habe das Timer-Holen dann einfach in einem seperaten Thread ausgelagert.


    Für Skindesigner würde das dann so ausssehen (Achtung, das ist ein völlig ungetesteter Patch, der nur zeigt, wie ich das ungefair bei SkinFlatPlus gemacht habe)


    locking-fix.diff


  • Hey louis,

    ich würde mich auch sehr freuen wenn du wieder am vdr weiter arbeiten würdest.

    Habe Deine Arbeit immer sehr wertgeschätzt.

    Gruß

    Geht mir ähnlich, hast auch immer zügig und freundlich auf sämtliche Anregungen und Probleme hinsichtlich deiner Plugins reagiert. Ich fand deinen Support und den Umgang im Forum immer sehr vorbildlich.


    Vielleicht findest du den Weg ja mal wieder zurück.


    Gruss


    Stefan

    Server: Debian Stretch x64 mit Softhddevice, Kernel 4.14.6, ASRock H81M, Intel i3-4150, NVIDIA GPU GeForce GT 520 (GF119), 2 x 2048 MB DDR2-RAM, 2 x Technotrend S2-1600, 1 x DD Cine S2, Lirc-Serial mit One4All URC 7960, Phillips 47'' FullHD
    Client: Debian Stretch x64 mit XBMC+vnsiserver, Kernel 4.10.0, ASRock B75 Pro3-M, Intel CPU G630, NVIDIA GPU GeForce GT 610 (GF119), 2 x 2048 MB DDR3-RAM, 1 xTechnisat SkyStar2 HD, SilverStone Milo ML03, ASRock Smart Remote CIR mit Logitech Harmony 650, Beamer 120'' FullHD-3D

  • Ich glaube, es gibt viel viel mehr Skindesigner-Nutzer, als hier mit "positiven Beiträgen" auffallen.

    Mich würds auch sehr freuen, wenn du weitermachen würdest; respektiere aber deine Entscheidung.

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • :tup

    Gruß
    Frodo

  • Kann mich da nur anschließen. Ohne Skindesigner ist vdr optisch so ziemlich 90er-mässig.

    Erst mit skindesigner wird daraus was anständiges.

    Ich würde es auch begrüßen wenn das Plugin wenigstens funktionstüchtig gehalten wird.

    Louis seine Hilfe hier war auch immer sehr anständig!

  • Ohne Skindesigner ist vdr optisch so ziemlich 90er-mässig.

    Erst mit skindesigner wird daraus was anständiges.

    Kommt halt immer darauf an, wozu man es benutzt ;-).

    Als Video-Spiel ist es echt etwas eintönig, da hast du recht. Ich nehme es daher eigentlich nur zum Aufnehmen und Wiedergeben von TV-Sendungen her ;-).


    Klaus

  • @Klaus

    Das ist das Problem vom VDR und weshalb das Programm auch sein Leben als Backend für Kodi fristet.. weil der Hauptentwickler ja mit seiner 90er-Jahre-Optik zufrieden ist und auch mit Einschränkungen wie kein GIT und bloß keine großen Veränderungen.. aber das steht ja im Forum schon zur genüge..

  • Für die Optik gibt es ja die Plugin-Schnittstelle - wenn der Autor eines Plugins dieses nicht mehr pflegen will, dann ist das seine Sache und nicht meine Schuld. Was "kein GIT" mit der Plugin-Entwicklung zu tun hat erschließt sich mir nicht.


    Klaus

  • was prinzipiell mit der GUI möglich ist sieht man ja im demo plugin / da ginge schon einiges ....

  • Volle Zustimmung :thumbup:

    Echtsystem: YaVDR 0.6.1 mit VDR 2.2.0 Server und 2 Clients
    Testsystem: YaVDR 0.6.1 mit VDR 2.3.1 Server und 1 Client

  • Ich hatte mit SkinFlatPlus auch den einen oder anderen Deadlock. Das Problem war da das gleiche, dass die aktiven Timer irgendwo in SetChannel abgerufen wurden. Ich habe das Timer-Holen dann einfach in einem seperaten Thread ausgelagert.


    Für Skindesigner würde das dann so ausssehen (Achtung, das ist ein völlig ungetesteter Patch, der nur zeigt, wie ich das ungefair bei SkinFlatPlus gemacht habe)


    locking-fix.diff


    Da die Holzhammer Variante bei mir gut läuft, habe ich deine Lösung jetzt nicht mehr getestet. Trotzdem danke für den konstruktiven Beitrag!

  • Here we go again, but this time epg2vdr and his timer service is involved, too :(

    I doesn't see this kind of errors on my main vdr, only on the raspberries ...


    And some minutes later I got this:

    Sad but true, skindesigner isn't usable with my raspberry anymore.

  • Exakt denselben Fehler hab ich hier auch (noch mit vdr-2.3.8)

    Der Backtrace ist ein bisschen detaillierter:

    Wenn ich nun analog zum Patch von nanohvc diesen patch anwende:


    bekomme ich diesen Compile error:

    Code
    1. displayreplay.c: In lambda function:
    2. displayreplay.c:98:30: error: 'globalTimers' is not captured
    3. std::async([this](){ globalTimers.LoadTimers(); }).get();
    4. ^~~~~~~~~~~~
    5. displayreplay.c:98:25: note: the lambda has no capture-default
    6. std::async([this](){ globalTimers.LoadTimers(); }).get();
    7. ^
    8. displayreplay.c:96:23: note: 'cGlobalTimers globalTimers' declared here

    Hat dazu jemand nen Tipp ?

  • Damit geht es leider ach nicht:


    Code
    1. displayreplay.c: In member function ‘void cSDDisplayReplay::SetTimeShiftValues(const cRecording*)’:
    2. displayreplay.c:97:7: error: ‘async’ is not a member of ‘std’
    3.   std::async([&globalTimers](){ globalTimers.LoadTimers(); }).get();
    4.        ^~~~~
    5. displayreplay.c:97:7: note: suggested alternative: ‘asinh’
    6.   std::async([&globalTimers](){ globalTimers.LoadTimers(); }).get();
    7.        ^~~~~
    8.        asinh
    9. Makefile:141: recept voor doel 'displayreplay.o' is mislukt
  • Welche gcc-Version verwendest du?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)