Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Deadlock Kategorie: Programmierung (von Stefan - 30.08.2002 8:38)
Als Antwort auf Deadlock von Mario Fischer - 30.08.2002 3:42

Hallo, Mario,

einen Deadlock hast du im Prinzip eigentlich nicht, da sich die Threads ja nur um eine Resource streiten (das Filearray). Vom Prinzip her sollte das eigentlich ohne Probleme laufen, deswegen die Frage, wo genau hängts denn?
Was vielleicht problematisch werden könnte, ist der Teil:
 
>     if ('s' == rxbuf) // datei senden
>     {
>         capture file_lock;
>         hwcom.put(fileptr);
>         hwcom.put(fileptr >> 8);
>         hwcom.send(file, fileptr);
>         release;
>     }

Allerdings nicht wegen Aufhänggefahr, sondern wegen dem Exklusivzugriff. Die hwcom schreibt das Array im Hintergrund auf die Schnittstelle, sprich, wenn das release kommt, kann der immer noch fleissig weiterschreiben und wenn dann der writer-thread das array währenddessen verändert... Bei der Länge des Arrays ist das kein Problem, die wird by-value übergeben, das Array selbst aber by-reference. Denk ich mir jetzt mal so.
Müsstest vielleicht den writer-thread noch mit einem

wait hwcom.ready();

oder so absichern, evtl hilfts?

GruÃ?, Stefan


    Antwort schreiben


Antworten:

Re: Deadlock (von Mario Fischer - 31.08.2002 1:38)