AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FastSwitch

Ein Thema von EWeiss · begonnen am 22. Dez 2013 · letzter Beitrag vom 27. Dez 2013
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: FastSwitch

  Alt 26. Dez 2013, 19:18
Aber nicht wenn ich meinen Thread wenn er noch läuft in Millisekunden Takt erneut aufrufe.
PageUP/Down taste..
Was meinst du mit 'erneut aufrufe?' Du meinst, wenn Du ihm Messages schickst? Das sollte kein Problem sein. Wenn ja, dann ist in deinem Messagehandler etwas faul.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: FastSwitch

  Alt 26. Dez 2013, 19:28
Aber nicht wenn ich meinen Thread wenn er noch läuft in Millisekunden Takt erneut aufrufe.
PageUP/Down taste..
Was meinst du mit 'erneut aufrufe?' Du meinst, wenn Du ihm Messages schickst? Das sollte kein Problem sein. Wenn ja, dann ist in deinem Messagehandler etwas faul.
Wenn ich von der Anwendung in ms Takt ein neues Plugin zugewiesen bekomme das ich laden soll
habe ich genau das getan was du mir gezeigt hast siehe einige Post vorher.
Deshalb bin ich auch irgendwie jetzt leicht daneben warum ich immer noch im Thread herum werkle
während das nächste schon am laden ist.

Das Timing in Millisekunden funktioniert einfach nicht.
Das ist mein Problem.

Vielleicht versteht man mein Problem auch nicht richtig oder hab mich falsch ausgedrückt.
1. Start der Anwendung = 1 Plugin wird gestartet
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.

VisInfo ist dann nicht mehr identisch mit dem das geladen/entladen wird.
Es kommt also unweigerlich zu Kuddelmuddel.
Bei normaler Verwendung geschieht das nicht nur wenn der Thread mit dem Timing nicht zurecht kommt.


gruss

Geändert von EWeiss (26. Dez 2013 um 19:55 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

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
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: FastSwitch

  Alt 26. Dez 2013, 20:40
Zitat:
PS: 'Timing' ist bei Multithreading immer gleichbedeutend mit Synchronisationsobjekten und nie mit 'Sleep'
Ja! In meiner Verzweiflung habe ich alles versucht
Man möge mir vergeben.. hehehehe


Zitat:
"das nächste von der Anwendung über BASSVIS_ExecutePlugin" geladen?
Das ist ja die frage?

Normalerweise geht man so vor das wenn man eine Taste drückt diese auch wieder loslässt.
Oder aber man geht hin und löst den Schaltvorgang erst dann aus wenn die Taste released (losgelassen) wurde.
In dem fall gäbe es dann auch überhaupt keine Probleme da bis dahin jedes Plugin entladen wäre.

Jetzt habe ich in diese Anwendung ein KeyUp Event eingebaut um genau das Problem auf dieser weise zu regeln.
Allerdings wurde dann rumgemault.

Ein Plugin mit OpenGL/Shadern und was nicht noch alles benötigt mindestens 2 Sekunden bis es entladen und seine resourcen freigegeben hat.
Wenn ich aber in dieser zeit Theoretisch 1000 neue innerhalb einer Sekunde lade kann irgendwas nicht funktionieren.
Jetzt sind die der Meinung das eine Anwendung im Stresstest das aushalten muss.

Nur wie will man da händeln?
Wenn also das neue läd während das alte noch nicht entladen ist und ich setze just in dem Moment VisInfo auf NIL
dann wirkt sich das nicht nur auf das alte sondern gleichzeitig auf das neue aus.

Damit habe ich zu kämpfen.

gruss
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: FastSwitch

  Alt 26. Dez 2013, 21:33
Mache es doch einfach so, das nicht 1000 gleichzeitig geladen werden, sondern maximal 5. Oder 3 oder 10.

Wenn nur das Entladen so lange dauert, ist das doch wurscht.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: FastSwitch

  Alt 26. Dez 2013, 22:02
Mache es doch einfach so, das nicht 1000 gleichzeitig geladen werden, sondern maximal 5. Oder 3 oder 10.

Wenn nur das Entladen so lange dauert, ist das doch wurscht.
Ich denke du hast mir schon sehr geholfen..
Ich muss mal meinen ganzen repeat Mist rauswerfen und anstelle dessen mit Events arbeiten.


gruss

Geändert von EWeiss (27. Dez 2013 um 00:06 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: FastSwitch

  Alt 27. Dez 2013, 00:06
Hab jetzt wieder stunden damit verbracht komme auf keinen Nenner. Da kann man nur eins zu sagen
Ich muss jetzt was pennen.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz