So, would a possible solution be to check how many people are using the random generator at once? If only one process is currently accessing /dev/urandom, then avoid the spinlock and problem solved. Or, I am completely wrong.
The problem comes with multiple processes competing for the lock.
One preson may have multiple processes reading from /dev/urandom.