Skip to content

Commit

Permalink
Update TaskLocalRNG docstring according to #49110 (#55863)
Browse files Browse the repository at this point in the history
Since #49110, which is included in 1.10 and 1.11, spawning a task no
longer advances the parent task's RNG state, so this statement in the
docs was incorrect.

(cherry picked from commit c601b11)
  • Loading branch information
danielwe authored and KristofferC committed Oct 9, 2024
1 parent c3ea488 commit 0ccb8b6
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions stdlib/Random/src/Xoshiro.jl
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,8 @@ end
TaskLocalRNG
The `TaskLocalRNG` has state that is local to its task, not its thread.
It is seeded upon task creation, from the state of its parent task.
Therefore, task creation is an event that changes the parent's RNG state.
It is seeded upon task creation, from the state of its parent task, but without
advancing the state of the parent's RNG.
As an upside, the `TaskLocalRNG` is pretty fast, and permits reproducible
multithreaded simulations (barring race conditions), independent of scheduler
Expand All @@ -119,6 +119,9 @@ endianness and possibly word size.
Using or seeding the RNG of any other task than the one returned by `current_task()`
is undefined behavior: it will work most of the time, and may sometimes fail silently.
!!! compat "Julia 1.10"
Task creation no longer advances the parent task's RNG state as of Julia 1.10.
"""
struct TaskLocalRNG <: AbstractRNG end
TaskLocalRNG(::Nothing) = TaskLocalRNG()
Expand Down

0 comments on commit 0ccb8b6

Please sign in to comment.