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

Deadlock Kategorie: Programmierung (von Mario Fischer - 30.08.2002 3:42)


Hallo,
Obwohl ich die Thread-Synchronisiermethodik der CC2 durchaus verstanden habe, komme ich bei folgendem Problem nicht weiter:

Gegeben ein Thread
Im Sowohl Natuerlich hat das Programm unten so keinen Sinn, es ist eben nur der problematische Teil, so weit wie moeglich gekuerzt.
Darum sind auch Vorschlaege wie "mach doch ein halt/resume auf den filewriter" leider keine Loesung.

Vielen Dank fuer Vorschlaege,

Mario

// das schoene Programm:
const FILESIZE = 511;
byte  file_lock;
int   file_ptr;
byte  file[FILESIZE];

thread filewriter // in datei schreiben
{
  capture file_lock;
  if (fileptr < FILESIZE)
  {
    file[file_ptr] = file_ptr;
    file_ptr = file_ptr + 1;
  }
  release;
  sleep 500;
}

thread main
{
  byte      rxbuf;
  file_ptr  = 0;
  file_lock = 0;
  run filewriter;
  loop
  {
    wait hwcom.rxd();
    rxbuf = hwcom.get();
    if ('s' == rxbuf) // datei senden
    {
        capture file_lock;
        hwcom.put(fileptr);
        hwcom.put(fileptr >> 8);
        hwcom.send(file, fileptr);
        release;
    }
    if ('e' == rxbuf) // echo test, ob mainthread noch ok
    {
        hwcom.put('e');
    }
  }
}


    Antwort schreiben


Antworten:

Re: Deadlock (von André H. - 30.08.2002 9:09)
    Re: Deadlock (von Mario Fischer - 31.08.2002 1:53)
        Re: Deadlock (von André H. - 31.08.2002 8:33)
Re: Deadlock (von Stefan - 30.08.2002 8:38)
    Re: Deadlock (von Mario Fischer - 31.08.2002 1:38)