Crate rayon_core[−][src]
Expand description
Restricting multiple versions
In order to ensure proper coordination between threadpools, and especially
to make sure there’s only one global threadpool, rayon-core is actively
restricted from building multiple versions of itself into a single target.
You may see a build error like this in violation:
error: native library `rayon-core` is being linked to by more than one package, and can only be linked to by one package
While we strive to keep rayon-core semver-compatible, it’s still
possible to arrive at this situation if different crates have overly
restrictive tilde or inequality requirements for rayon-core. The
conflicting requirements will need to be resolved before the build will
succeed.
Structs
Contains the rayon thread pool configuration. Use ThreadPoolBuilder instead.
Provides the calling context to a closure called by join_context.
Represents a fork-join scope which can be used to spawn any number of tasks.
See scope() for more information.
Represents a fork-join scope which can be used to spawn any number of tasks.
Those spawned from the same thread are prioritized in relative FIFO order.
See scope_fifo() for more information.
Thread builder used for customization via
ThreadPoolBuilder::spawn_handler.
Represents a user created thread-pool.
Error when initializing a thread pool.
Used to create a new ThreadPool or to configure the global rayon thread pool.
Functions
Returns the number of threads in the current registry. If this code is executing within a Rayon thread-pool, then this will be the number of threads for the thread-pool of the current thread. Otherwise, it will be the number of threads for the global thread-pool.
If called from a Rayon worker thread, indicates whether that
thread’s local deque still has pending tasks. Otherwise, returns
None. For more information, see the
ThreadPool::current_thread_has_pending_tasks() method.
If called from a Rayon worker thread, returns the index of that
thread within its current pool; if not called from a Rayon thread,
returns None.
Deprecated in favor of ThreadPoolBuilder::build_global.
Takes two closures and potentially runs them in parallel. It returns a pair of the results from those closures.
Identical to join, except that the closures have a parameter
that provides context for the way the closure has been called,
especially indicating whether they’re executing on a different
thread than where join_context was called. This will occur if
the second job is stolen by a different thread, or if
join_context was called from outside the thread pool to begin
with.
Creates a “fork-join” scope s and invokes the closure with a
reference to s. This closure can then spawn asynchronous tasks
into s. Those tasks may run asynchronously with respect to the
closure; they may themselves spawn additional tasks into s. When
the closure returns, it will block until all tasks that have been
spawned into s complete.
Creates a “fork-join” scope s with FIFO order, and invokes the
closure with a reference to s. This closure can then spawn
asynchronous tasks into s. Those tasks may run asynchronously with
respect to the closure; they may themselves spawn additional tasks
into s. When the closure returns, it will block until all tasks
that have been spawned into s complete.
Fires off a task into the Rayon threadpool in the “static” or
“global” scope. Just like a standard thread, this task is not
tied to the current stack frame, and hence it cannot hold any
references other than those with 'static lifetime. If you want
to spawn a task that references stack data, use the scope()
function to create a scope.
Fires off a task into the Rayon threadpool in the “static” or
“global” scope. Just like a standard thread, this task is not
tied to the current stack frame, and hence it cannot hold any
references other than those with 'static lifetime. If you want
to spawn a task that references stack data, use the scope_fifo()
function to create a scope.