Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > 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