kstat(1): implement wait with setitimer(2) instead of nanosleep(2)
authorcheloha <cheloha@openbsd.org>
Thu, 5 May 2022 22:36:36 +0000 (22:36 +0000)
committercheloha <cheloha@openbsd.org>
Thu, 5 May 2022 22:36:36 +0000 (22:36 +0000)
commit6f9574e0c8dab84ccdef89d380950c7af2911963
tree215ccb466ef902ada7b9965e0cc00f11cb02fe5f
parent28fd1e1cacd0ac22d176bf7a682e28e518ad330c
kstat(1): implement wait with setitimer(2) instead of nanosleep(2)

kstat(1)'s wait period drifts because nanosleep(2) uses a relative
timeout.  If we use setitimer(2)/sigsuspend(2) the period does not
drift.

While here, bump the upper bound for wait up to UINT_MAX and switch to
the normal strtonum(3) error message format.

With input from kn@.

Tweaked by bluhm@ to block SIGALRM with sigprocmask(2) while we're
outside of sigsuspend(2).

Thread: https://marc.info/?l=openbsd-tech&m=160038548111187&w=2

Earlier version ok millert@.

ok bluhm@
usr.bin/kstat/kstat.c