pub trait ThreadBuilderExt {
// Required methods
fn spawn_with_priority<F, T>(
self,
priority: ThreadPriority,
f: F,
) -> Result<JoinHandle<T>>
where F: FnOnce(Result<(), Error>) -> T + Send + 'static,
T: Send + 'static;
fn spawn_scoped_with_priority<'scope, 'env, F, T>(
self,
scope: &'scope Scope<'scope, 'env>,
priority: ThreadPriority,
f: F,
) -> Result<ScopedJoinHandle<'scope, T>>
where F: FnOnce(Result<(), Error>) -> T + Send + 'scope,
T: Send + 'scope;
}
Expand description
Adds thread building functions using the priority.
Required Methods§
Sourcefn spawn_with_priority<F, T>(
self,
priority: ThreadPriority,
f: F,
) -> Result<JoinHandle<T>>
fn spawn_with_priority<F, T>( self, priority: ThreadPriority, f: F, ) -> Result<JoinHandle<T>>
Spawn a thread with set priority. The passed functor f
is executed in the spawned thread and
receives as the only argument the result of setting the thread priority.
See std::thread::Builder::spawn
and ThreadPriority::set_for_current
for more info.
§Example
use thread_priority::*;
use thread_priority::ThreadBuilderExt;
let thread = std::thread::Builder::new()
.name("MyNewThread".to_owned())
.spawn_with_priority(ThreadPriority::Max, |result| {
// This is printed out from within the spawned thread.
println!("Set priority result: {:?}", result);
assert!(result.is_ok());
}).unwrap();
thread.join();
Sourcefn spawn_scoped_with_priority<'scope, 'env, F, T>(
self,
scope: &'scope Scope<'scope, 'env>,
priority: ThreadPriority,
f: F,
) -> Result<ScopedJoinHandle<'scope, T>>
fn spawn_scoped_with_priority<'scope, 'env, F, T>( self, scope: &'scope Scope<'scope, 'env>, priority: ThreadPriority, f: F, ) -> Result<ScopedJoinHandle<'scope, T>>
Spawn a scoped thread with set priority. The passed functor f
is executed in the spawned thread and
receives as the only argument the result of setting the thread priority.
See std::thread::Builder::spawn_scoped
and ThreadPriority::set_for_current
for more info.
§Example
use thread_priority::*;
use thread_priority::ThreadBuilderExt;
let x = 0;
std::thread::scope(|s|{
std::thread::Builder::new()
.name("MyNewThread".to_owned())
.spawn_scoped_with_priority(s, ThreadPriority::Max, |result| {
// This is printed out from within the spawned thread.
println!("Set priority result: {:?}", result);
assert!(result.is_ok());
dbg!(&x);
}).unwrap();
});
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.