INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

"Race-Conditions"?! vermeiden/beheben



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

24.04.2009, 08:43
Beitrag #1

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
"Race-Conditions"?! vermeiden/beheben
Moin zusammen,

ich habe zwei VIs:

1. In einem Event-Case wird auf Knopfdruck eine Umgebungsvariable gesetzt (auf den Wert des Buttons). Nach dem Setzen wird eine Meldung gesendet.

2. Es wird auf eine Meldung gewartet. Sobald sie eintrifft, wird der Wert der Umgebungsvariable angezeigt.

Starte ich die VIs so zeigt mir das zweite VI grundsätzlich den falschen Wert an (also den Wert vor dem Buttonklick). Starte ich dagegen mit eingeschalteter Highlightfunktion, so funktioniert alles so wie es soll. Ich habe auch schon eine Wartezeit von einer Sekunde nach der "Auf Meldung warten"-Funktion eingebaut, dann läuft es korrekt.

Ist es also tatsächlich so, dass eine Umgebungsvariable soo langsam geschrieben wird, dass in der Zeit eine Meldung vertschickt und empfangen werden kann und was ich noch erstaunlicher finde, dass der Wert der Umgebungsvariable ausgelesen werden kann, obwohl ein andere Prozess grade den neuen Wert schreiben sollte???

LG
Torsten

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.04.2009, 08:55
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
"Race-Conditions"?! vermeiden/beheben
Hast Du 2 Netzwerkkarten in Deinem Rechner? Wenn ja, dann deaktiviere mal eine davon.
Wenn nein, dann schraub' die Wartezeit mal auf z.B. 50 ms zurück. Geht's dann auch noch?

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2009, 08:57
Beitrag #3

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
"Race-Conditions"?! vermeiden/beheben
Habe nur eine Netzwerkkarte!

Mit 50 ms läuft es fehlerfrei!

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2009, 09:22
Beitrag #4

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
"Race-Conditions"?! vermeiden/beheben
Aber mir wäre es lieber wenn man da keine pause machen müsste. also wer garantiert mir denn, dass 50 ms ausreichen und nciht irgendwie mal noch andere prozesse die cpu brauchen und sich die wartezeit erhöhen müsste?

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2009, 10:34
Beitrag #5

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
"Race-Conditions"?! vermeiden/beheben
Kannst Du Dein Projekt (oder ein kleines Bsp.-Projekt, wo man sieht, was Du genau machst) hochladen?

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2009, 10:37
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
"Race-Conditions"?! vermeiden/beheben
' schrieb:1. In einem Event-Case wird auf Knopfdruck eine Umgebungsvariable gesetzt (auf den Wert des Buttons). Nach dem Setzen wird eine Meldung gesendet.
2. Es wird auf eine Meldung gewartet. Sobald sie eintrifft, wird der Wert der Umgebungsvariable angezeigt.
In diesem Falle würde ich in der Meldung den Wert des Buttons mit schicken.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.04.2009, 10:47
Beitrag #7

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
"Race-Conditions"?! vermeiden/beheben
Das klingt nach einer guten lösung!

Vielen Dank. Rein fürs Interesse erstelle ich gleich mal ein kleines Beispielprojekt. nach der Mittagspause!

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2009, 12:27
Beitrag #8

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
"Race-Conditions"?! vermeiden/beheben
So, ich hab mal auf das wesentliche reduziert so dass der effekt erkennbar ist. Zuerst das Consumer.VI starten, dann das Main.vi.

Problem bei der vorhin vorgeschlagenen Lösung ist: ich möchte melden, wenn eine von vielen Variablen den wert ändert. in der anzeige sollen dann einfach alle variablen neu ausgelesen werden. mit dem vorschlag einfach den wert des buttons in die meldung zu integrieren komme ich daher nicht weiter, ich müsste dann ja noch zuordnen, welcher button aktualisiert wurde.

gezipptes projekt:
Lv86_img
Sonstige .zip  TestProjekt.zip (Größe: 17,59 KB / Downloads: 233)

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2009, 13:12
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
"Race-Conditions"?! vermeiden/beheben
' schrieb:Problem bei der vorhin vorgeschlagenen Lösung ist: ich möchte melden, wenn eine von vielen Variablen den wert ändert. in der anzeige sollen dann einfach alle variablen neu ausgelesen werden. mit dem vorschlag einfach den wert des buttons in die meldung zu integrieren komme ich daher nicht weiter, ich müsste dann ja noch zuordnen, welcher button aktualisiert wurde.
Ich habe kein Problem damit, alle Buttons per Melder zu verschicken.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2009, 13:59
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
"Race-Conditions"?! vermeiden/beheben
' schrieb:also wer garantiert mir denn, dass 50 ms ausreichen und nciht irgendwie mal noch andere prozesse die cpu brauchen und sich die wartezeit erhöhen müsste?
Du verwendet hier für Status und Daten zwei verschiedene Wege. Beide Wege sind zu einander asynchron. Aber beide Wege haben eine Beziehung. Asynchron und Beziehung beißt sich: eine Beziehung muss immer synschon sein (asynchron => RaceCondition).

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Question Schalter deaktivieren führt zu race condition, wie umgeht man das? TpunktN 4 3.488 12.05.2021 09:18
Letzter Beitrag: TpunktN
  EOF Fehler vermeiden chrissy 6 5.786 13.12.2016 08:26
Letzter Beitrag: chrissy
  Race Condition Eisbär 8 5.870 02.01.2016 20:22
Letzter Beitrag: Lucki
  UDP-Steuerung (Race Condition) nurso 4 3.927 01.09.2015 14:17
Letzter Beitrag: nurso
  Polling von Curser-Position in Waveform Graph vermeiden UFPhC 11 8.967 16.10.2014 12:00
Letzter Beitrag: Trinitatis
  Wie sehr großen Cluster vermeiden? Matze 10 9.466 31.10.2013 17:21
Letzter Beitrag: macmarvin

Gehe zu: