Protect the per-process itimerval structs with a mutex.  We update these from hardclock() which runs without grabbing the kernel lock.  This means that two threads could concurrently update the struct which could lead to corruption of the value which in turn could stop the timer.  It could also result in getitimer(2) returning a non-normalized value.
Protect the per-process itimerval structs with a mutex.  We update these
from hardclock() which runs without grabbing the kernel lock.  This means
that two threads could concurrently update the struct which could lead to
corruption of the value which in turn could stop the timer.  It could also
result in getitimer(2) returning a non-normalized value.

With help from guenther@.

ok deraadt@, guenther@

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars