Veo a personas haciendo esto en algunas partes de los sistemas de aplicaciones multiproceso y multiproceso con los que trabajo. Parece que se hace alrededor de las líneas de depuración:¿Cuál es el efecto de llamar a suspensión (0) en un sistema UNIX?
std::cerr << "DEBUG: Reaching: " << __FUNCTION__ << " @ " << __LINE__ << std::endl;
sleep(0);
If macro out sleep (0); (es decir, cámbielo a ""), la salida de depuración del sistema parece venir en diferente orden (menos predecible), así que creo que hace que la línea salga antes, pero pensé que std :: cerr no estaba búfer, y std: : endl llama a std :: flush() de todos modos, entonces ¿por qué sería esto?
Estaba a punto de decirle que lea la página del manual, pero la leí primero y no responde la pregunta. –
pthread_yield de Pobre? – Nemo
@Nemo, casi. Esto es efectivamente un rendimiento de todo el proceso de peso pesado; el control vuelve al programador del proceso. –