On Saturday, 8 June 2024 at 13:19:30 UTC, Eric P626 wrote:
Now I want to seed the generator using system time.

Just to be clear, do you _specifically_ want to use the system time, or are you aiming to use the system time to generate different seeds for each run?

If the latter you might prefer to use the `unpredictableSeed()` function from `std.random`:
https://dlang.org/phobos/std_random.html#unpredictableSeed

That may use a variety of different methods to generate the seed, depending on the capabilities of the system, but one of the fallback options (which is actually the original implementation IIRC) uses a pseudo-random transformation of values derived from the thread ID, the process ID, and the current time in ticks as reported by the system's monotonic clock.

A benefit of that is that it means that different threads in the same app, and different apps, are guaranteed to get _different_ random seeds if started at the same time.

The preferred alternatives to that use different mechanisms, but should all have the same desired property of guaranteeing that different threads get different random seeds.

But FWIW, if current time in ticks is valid for your use-case, `cast(ulong) MonoTime.currTime.ticks` should do.

Hope that helps!

Best wishes,

    -- Joe

Reply via email to