ich setze gerade ein Multithreaded Program von Win32 auf Linux um und
brauche an folgender
Stelle etwas Hilfe.
Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem multithreaded
Program, in dem
aktuellen thread die Prozessorzeit des threads an einen anderen thread, mit
gleicher Priorität, weitergibt.
Was gibt es vergleichbares unter Linux ?
Ich habe im "man" unter sleep nachgeschaut und als Erklärung nur gefunden,
daß sleep eine bestimmte
Anzahl von Sekunden wartet.
Lukas
> Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem multithreaded
> Program, in dem
> aktuellen thread die Prozessorzeit des threads an einen anderen thread, mit
> gleicher Priorität, weitergibt.
-- 
Der Nachteil an Linux ist, dass man sich irgendwann nicht mehr an den
Installationsvorgang erinnern kann.
> Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem multithreaded
> Program, in dem
> aktuellen thread die Prozessorzeit des threads an einen anderen thread,
> mit gleicher Priorität, weitergibt.
Wie bekommt er den Prozessor wieder zurück?
> Was gibt es vergleichbares unter Linux ?
> 
> Ich habe im "man" unter sleep nachgeschaut und als Erklärung nur gefunden,
> daß sleep eine bestimmte
> Anzahl von Sekunden wartet.
Verwenden kannst Du es prinzipiell auch dafür. Der thread wird eben für die 
angegebene Zeit nicht vom Scheduler aufgerufen. Wenn eine Sekunde zu lang 
ist, sollte nanosleep funktionieren.
Iiiiih, Windows-Code unter Linux!
Warum bleibt ihr alle mit eurem Windows-Kot nicht da, wo er herkommt?
Und überhaupt, diese ganze Multithreading-Scheiße ist unter anständigen
Betriebssystemen wie Linux überflüssig und schadet sogar.
> Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem
> multithreaded Program, in dem aktuellen thread die Prozessorzeit des
> threads an einen anderen thread, mit gleicher Priorität, weitergibt.
Igitt, was für ein Kludge.
> Was gibt es vergleichbares unter Linux ?
Wozu?
Wenn du synchronisieren willst, nimm Semaphoren.
Wenn ich diese widerlichen Würg-Kludges schon sehe wird mir schlecht.
> Ich habe im "man" unter sleep nachgeschaut und als Erklärung nur
> gefunden, daß sleep eine bestimmte Anzahl von Sekunden wartet.
Wie der Name schon sagt.
Felix
sched_yield(2)
-- 
SIGSTOP
Danke,
werde ich mir mal anschauen...
Lukas