И окончательно 2 варианта, существующие раздельно для отладки, слиты в общий файл wait.cc для сравнений ... там ничего нет отличающегося, поэтому он не приводится. Он нужен для сравнений.Olej писал(а): ↑26 янв 2021, 20:36Точнее даже, мне нужна не просто (только) функция аналог sleep() только миллисекундного диапазона, а 2 функции - пассивного и активного (подобно тому как работает spin-блокировка) ожидания!
Потому что они могут влиять на поведение многопоточных приложений радикально р
Код: Выделить всё
olej@nvme:~/2021/OWN_TEST.codes/wait$ ./wait .01
the requested delay is 10 milliseconds
wait_p1 : delay was 10.068 milliseconds
wait_p2 : delay was 10.129 milliseconds
wait_p3 : delay was 10.085 milliseconds
wait_a1 : delay was 9.36 milliseconds
olej@nvme:~/2021/OWN_TEST.codes/wait$ ./wait .1
the requested delay is 100 milliseconds
wait_p1 : delay was 100.079 milliseconds
wait_p2 : delay was 100.097 milliseconds
wait_p3 : delay was 100.111 milliseconds
wait_a1 : delay was 119.988 milliseconds
olej@nvme:~/2021/OWN_TEST.codes/wait$ ./wait .5
the requested delay is 500 milliseconds
wait_p1 : delay was 500.102 milliseconds
wait_p2 : delay was 500.111 milliseconds
wait_p3 : delay was 500.118 milliseconds
wait_a1 : delay was 508.488 milliseconds
Но особы эффектов, пока, при предварительной отладке, не наблюдается:
Код: Выделить всё
olej@nvme:~/2021/OWN_TEST.codes/wait$ sudo nice -n -19 ./wait .2
the requested delay is 200 milliseconds
wait_p1 : delay was 200.084 milliseconds
wait_p2 : delay was 200.101 milliseconds
wait_p3 : delay was 200.118 milliseconds
wait_a1 : delay was 234.896 milliseconds
olej@nvme:~/2021/OWN_TEST.codes/wait$ sudo nice -n -19 ./wait .2
the requested delay is 200 milliseconds
wait_p1 : delay was 200.099 milliseconds
wait_p2 : delay was 200.116 milliseconds
wait_p3 : delay was 200.241 milliseconds
wait_a1 : delay was 217.131 milliseconds
olej@nvme:~/2021/OWN_TEST.codes/wait$ sudo nice -n -19 ./wait .5
the requested delay is 500 milliseconds
wait_p1 : delay was 500.24 milliseconds
wait_p2 : delay was 500.076 milliseconds
wait_p3 : delay was 500.103 milliseconds
wait_a1 : delay was 516.959 milliseconds
Код: Выделить всё
olej@nvme:~/2021/OWN_TEST.codes/wait$ sudo chrt -r 99 ./wait .1
the requested delay is 100 milliseconds
wait_p1 : delay was 100.053 milliseconds
wait_p2 : delay was 100.041 milliseconds
wait_p3 : delay was 100.058 milliseconds
wait_a1 : delay was 123.647 milliseconds
olej@nvme:~/2021/OWN_TEST.codes/wait$ sudo chrt -r 99 ./wait .2
the requested delay is 200 milliseconds
wait_p1 : delay was 200.031 milliseconds
wait_p2 : delay was 200.043 milliseconds
wait_p3 : delay was 200.059 milliseconds
wait_a1 : delay was 236.747 milliseconds
olej@nvme:~/2021/OWN_TEST.codes/wait$ sudo chrt -r 99 ./wait .5
the requested delay is 500 milliseconds
wait_p1 : delay was 500.032 milliseconds
wait_p2 : delay was 500.042 milliseconds
wait_p3 : delay was 500.062 milliseconds
wait_a1 : delay was 533.617 milliseconds