pthread thread: läuft noch oder nicht mehr?
hallo,
ich habe mehrere pthread threads laufen (oder auch nicht mehr) -
wie stelle ich fest: läuft der eine oder andere noch oder nicht mehr?
Kann sein, dass wir hier schon mal das Thema hatten, aber ich find's jedenfalls nicht mehr...
z.Zt verwende ich einen Semaphore, was sehr unschön ist und auch nicht immer klappt.
Statt der Frage nach s1 in while(s1) möchte ich so etwas verwenden wie
tid1.running()
o.ä.
tid1 selber wird wohl erst nach pthread_join zu 0, danach kann man auch direkt auf tid1 testen
- aber wie schon vorher?
Code:
int s1=-1;
void* thread1 (void* ) { //
s1=1;
volatile int ival;
for (long i=0; i<1000000; i++) {
ival=digitalRead(6);
digitalWrite(21, HIGH);
ival=digitalRead(6);
digitalWrite(21, LOW);
}
s1=0;
return NULL;
}
int main() {
//...
pthread_t tid1;
//...
pthread_create(&tid1, NULL, thread1, NULL); //
while(s1) {
// do sth.
}
pthread_join( tid1, NULL);
//...
exit(0);
}