История изменений
Исправление monk, (текущая версия) :
return (getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec ^ junk;
Тут рандомное значение, которое случайно вышло 0
Чтобы тут «случайно» вышло 0, junk должен быть равен (getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec. Причём заметь, там два вызова, но junk всегда магически подбирается под tv.tv_usec так, чтобы всё равно был 0.
Исходная версия monk, :
return (getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec ^ junk;
Тут рандомное значение, которое случайно вышло 0
Чтобы тут «случайно» вышло 0, junk должен быть равен ~((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec). Причём заметь, там два вызова, но junk всегда магически подбирается под tv.tv_usec так, чтобы всё равно был 0.