Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 14. Nov 2018 1:46

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 03. Jan 2007 16:46 
Guten Tag,

ich mache die ersten Schritte mit Threads. Ich möchte z.B. periodisch ein Zeichen auf die serielle Schnittstelle ausgeben. Nebenbei laufen noch andere Threads die etwas anderes tun. Das Zeichen ausgeben kann ich. Threads erstellt habe ich auch schon. Das funktioniert.

Mein Problem ist: wie kriege ich es hin, dass mein Thread immer z.B. 10ms wartet, dann abgearbeitet wird (z.B. Zeichen ausgibt) und wieder wartet? Der Timer sollte so genau wie möglich sein. Ich habe wait() versucht, aber irgendwie wartet der Thread dann nicht. Muss ich mit Signalen arbeiten? Hat vieleicht jemand ein Code-Schnippsel, welches mir auf die Sprünge hilft? Oder einen Tipp?

Würde mich happy machen.

Byebye

hinodigo


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 03. Jan 2007 23:59 
Guten Tag

wait () wartet auf die Beendigung des Threads mit der angegeben PID
Code:
man 2 wait
Schau dir mal usleep () an, damit kannst du eine einfache Endlosschlaufe erstellen ( mehr geht aus deinem Post nicht hervor )

hth


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 04. Jan 2007 9:48 
Hallo auch,

ich habe noch diesen Beitrag gefunden:
viewtopic.php?t=1030775&highlight=pthread

Scheinbar funktionieren die Sleep-Funktionen nicht da nur Signale an Prozesse, nicht aber an Threads gsendet werden können. So entnehme ich das dem Artikel...

Hast Du Erfahrungen?

hinodigo


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 04. Jan 2007 14:14 
Olla,

habs doch mit sleep() und usleep() probiert - schein zu funktionieren. Vieleicht kann mir das jemand erklären, aber gehen tut's.

Ajö

hinodigo


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 04. Jan 2007 17:08 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
In der Manpage zu usleep steht dazu:

The interaction of this function with the SIGALRM signal, and with other timer functions such as
alarm(), sleep(), nanosleep(), setitimer(), timer_create(), timer_delete(), timer_getoverrun(),
timer_gettime(), timer_settime(), ualarm() is unspecified.

Wenn du portabel programmieren willst, solltest du stattdessen pthread_cond_timedwait() benutzen.

Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de