Schrift
[thread]8421[/thread]

sleep nur für ein Thread



<< >> 2 Einträge, 1 Seite
Gast Gast
 2006-10-17 11:04
#70805 #70805
Hallo,
also, es geht um eine API, mit der man Testprogramme für eine externe HW schreiben kann, die über die serielle Schnittstelle angeschlossen ist. (Bzw. es kann auch sein, dass mehrere Module an einem PC sind, wenn man deren Zusammenspiel miteinander testen will)
Ich hab mir das so vorgestellt, dass das Hauptprogramm immer Befehle schickt und auf Antworten wartet etc. und dann gibt es noch einen Logger-Thread, der nichts anderes macht, als die ganze Kommunikation auf den Schnittstellen zu loggen. Der Logger würde also die Zeichen abholen, sie mit Timestamps versehen und loggen und zusätzlich in einen Puffer packen, von wo dann das Hauptprogramm sie abholen kann.
Nun kann es passieren, dass das Hauptprogramm mal warten will. Bisher habe ich dazu sleep verwendet. Ich habe aber festgestellt, dass sleep alle Threads anhält, auch den Logger-Thread, was äusserst unerwünscht ist. Darum die Frage: gibt es sowas, wie sleep nur für den Thread, der gerade ausgeführt wird?

Bisher habe ich nur sowas hier, aber so richtig gefallen tut es mir nicht:
Code: (dl )
for (my $time = Time::HiRes::time(); Time::HiRes::time()-$time < 100.0/1000.0;){}# 100ms warten


PS: meine Registrierung funktioniert immer noch nicht :(
renee
 2006-10-17 11:21
#70806 #70806
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Lies Dir mal perlthrtut durch. Vor allem die Abschnitte "Native Threads" und "Ignoring A Thread"...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 2 Einträge, 1 Seite



View all threads created 2006-10-17 11:04.