Gast
#3383502
Schönen guten Tag,
ich Programmierem momentan an einem Programm für die Umgebung QNX.
Das Projekt ist schon sehr weit fortgeschritten, und es gibt momentan
ein Problem.
-------------------- -----------------
| Empfänger | -> | int pid = ... |
-------------------- Initlialisierung -----------------
| /\
| Empfang |
| |
\/ |
--------------------- |
| qthread_create() | |
| -> bewege() |---------> greift zu ---- |
---------------------
Der Empfänger initialisiert mehrer Verbindungen zu anderen Servern.
Hierbei wird die ID der Verbindung in globalen Variablen
zwischengespeichert, so dass die ID nicht bei jedem Funktionsaufruf
übergeben werden muss.
Die globalen Variablen werden in der untersten Softwareschicht
definiert.
(sozusagen die Treiber).
Nach der Initialisung befindet sich der Server im Empfangsmodus. Wird
eine
Nachricht empfangen, startet der Server einen Thread und antwortet obs
möglich war.
Die Threads sind wichtig, da der Server immer empfangsbereit sein soll
und nicht in einen blockierten Zustand wechseln darf.
Das Problem ist nun, wenn ich aus einem Thread (indirekt über
Funktionsaufrufe) auf die globale Variable zugreife, ist dort scheinbar
nicht der richtige Wert drin.
Weiß jemand, was ich ändern muss, damit die Variable in dem neuen Thread
anständig genutzt werden kann?