Thema: FastSwitch

Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#31

AW: FastSwitch

  Alt 26. Dez 2013, 20:24
2. PageUP wird gedrückt Plugin wird freigegeben über die API BASSVIS_IsFree
in Free wird nun mit BassSonVisStop der Thread gestoppt das Plugin entladen und die Resourcen freigegeben.
3. Während das Plugin in Free noch freigegeben wird kommt das nächste von der Anwendung über BASSVIS_ExecutePlugin
4. Ist bis dahin der Thread noch nicht beendet kommt es zu Problemen weil dann das Alte noch entladen wird.
Wieso wird "während das Plugin in Free noch freigegeben wird", "das nächste von der Anwendung über BASSVIS_ExecutePlugin" geladen? Genau da ist ja das Problem, d.h. Du musst eben in ExecutePlugin warten, bis Du laden kannst.

Entweder (am einfachsten) verweigert 'BASSVIS_ExecutePlugin' das Laden, solange ein Plugin im Speicher ist, dann muss der Aufrufer selbst dafür sorgen, das das so lange probiert wird, bis die Routine ein 'Ok' liefert.

Oder 'BASSVIS_ExecutePlugin' wartet selbst, bis kein Plugin mehr im Speicher ist.

Und das 'kein Plugin mehr im Speicher' erledigt deine Lade/Entladelogik über ein einfaches Flag.


PS: 'Timing' ist bei Multithreading immer gleichbedeutend mit Synchronisationsobjekten und nie mit 'Sleep'
  Mit Zitat antworten Zitat