The int type are 32 bits wide on 32-bit systems in golang. Converting
time.Duration to int on a 32-bit systems with the 'int(s.activationTime)'
may cause the overflow. For example, for a duration '1m' (1 minute) the
conversion to int should result in 600000000000000 (ns), exceeding 2^32.
To avoid this conversion problem on 32-bit systems, we need to convert
time.Duration to int64 type and use mrand.Int63n instead of mrand.Intn.
The int type are 32 bits wide on 32-bit systems in golang. Converting time.Duration to int on a 32-bit systems with the 'int(s.activationTime)' may cause the overflow. For example, for a duration '1m' (1 minute) the conversion to int should result in 600000000000000 (ns), exceeding 2^32. To avoid this conversion problem on 32-bit systems, we need to convert time.Duration to int64 type and use mrand.Int63n instead of mrand.Intn.
Fixes: #4