2016-10-11 4 views
1

Qu'advient-il de la variable de condition temporisée lorsque la CPU est dans un état suspendu, par ex. suspendre à la RAM? La minuterie continue-t-elle ou est-elle en pause? La condition de dépassement de temps sera-t-elle ignorée si le délai d'attente est dépassé lorsque le processeur se réveille? Ou la minuterie va-t-elle reprendre quand le CPU se réveille?Qu'advient-il d'une variable de condition temporisée, par ex. std :: wait_for quand le CPU est suspendu ou en attente?

+0

pourquoi ne pas donner un coup de feu? faites-le dormir pendant 1 minute et hibernez votre ordinateur portable au milieu de celui-ci pendant 1 minute – DAG

+0

Avec la condition d'augmentation du temps d'attente, attendez que la minuterie semble être mise en pause lorsque la CPU est en mode veille. J'ai remarqué que le délai d'attente est prolongé lorsque la CPU est en mode veille. Je n'ai pas vérifié cela pour std :: condition_variable :: wait_for though. Je n'ai trouvé aucune référence en ligne. J'ai souhaité que quelqu'un puisse en donner un ou donner une explication détaillée. – Ishmael

Répondre

0

L'exigence est que le wait attende au moins aussi longtemps que demandé. Si l'OS fait quelque chose qui rend l'attente plus longue que ce qui a été demandé, alors c'est ce qui arrive: il attend plus longtemps. Si vous avez besoin de délais exacts (ou presque), vous avez besoin d'un système d'exploitation en temps réel (RTOS).