Struct brotli::enc::worker_pool::WorkerPool
source · pub struct WorkerPool<ReturnValue: Send + 'static, ExtraInput: Send + 'static, Alloc: BrotliAlloc + Send + 'static, U: Send + 'static + Sync> {
queue: GuardedQueue<ReturnValue, ExtraInput, Alloc, U>,
join: [Option<JoinHandle<()>>; 16],
}
Fields§
§queue: GuardedQueue<ReturnValue, ExtraInput, Alloc, U>
§join: [Option<JoinHandle<()>>; 16]
Implementations§
source§impl<ReturnValue: Send + 'static, ExtraInput: Send + 'static, Alloc: BrotliAlloc + Send + 'static, U: Send + 'static + Sync> WorkerPool<ReturnValue, ExtraInput, Alloc, U>
impl<ReturnValue: Send + 'static, ExtraInput: Send + 'static, Alloc: BrotliAlloc + Send + 'static, U: Send + 'static + Sync> WorkerPool<ReturnValue, ExtraInput, Alloc, U>
fn do_work( queue: Arc<(Mutex<WorkQueue<ReturnValue, ExtraInput, Alloc, U>>, Condvar)>, )
fn _push_job(&mut self, job: JobRequest<ReturnValue, ExtraInput, Alloc, U>)
fn _try_push_job( &mut self, job: JobRequest<ReturnValue, ExtraInput, Alloc, U>, ) -> Result<(), JobRequest<ReturnValue, ExtraInput, Alloc, U>>
fn start( queue: Arc<(Mutex<WorkQueue<ReturnValue, ExtraInput, Alloc, U>>, Condvar)>, ) -> JoinHandle<()>
pub fn new(num_threads: usize) -> Self
Trait Implementations§
source§impl<ReturnValue: Send + 'static, ExtraInput: Send + 'static, Alloc: BrotliAlloc + Send + 'static, U: Send + 'static + Sync> BatchSpawnableLite<ReturnValue, ExtraInput, Alloc, U> for WorkerPool<ReturnValue, ExtraInput, Alloc, U>where
<Alloc as Allocator<u8>>::AllocatedMemory: Send + 'static,
<Alloc as Allocator<u16>>::AllocatedMemory: Send + Sync,
<Alloc as Allocator<u32>>::AllocatedMemory: Send + Sync,
impl<ReturnValue: Send + 'static, ExtraInput: Send + 'static, Alloc: BrotliAlloc + Send + 'static, U: Send + 'static + Sync> BatchSpawnableLite<ReturnValue, ExtraInput, Alloc, U> for WorkerPool<ReturnValue, ExtraInput, Alloc, U>where
<Alloc as Allocator<u8>>::AllocatedMemory: Send + 'static,
<Alloc as Allocator<u16>>::AllocatedMemory: Send + Sync,
<Alloc as Allocator<u32>>::AllocatedMemory: Send + Sync,
type FinalJoinHandle = Arc<RwLock<U>>
type JoinHandle = WorkerJoinable<ReturnValue, ExtraInput, Alloc, U>
fn make_spawner(&mut self, input: &mut Owned<U>) -> Self::FinalJoinHandle
fn spawn( &mut self, locked_input: &mut Self::FinalJoinHandle, work: &mut SendAlloc<ReturnValue, ExtraInput, Alloc, Self::JoinHandle>, index: usize, num_threads: usize, f: fn(_: ExtraInput, _: usize, _: usize, _: &U, _: Alloc) -> ReturnValue, )
Auto Trait Implementations§
impl<ReturnValue, ExtraInput, Alloc, U> Freeze for WorkerPool<ReturnValue, ExtraInput, Alloc, U>
impl<ReturnValue, ExtraInput, Alloc, U> !RefUnwindSafe for WorkerPool<ReturnValue, ExtraInput, Alloc, U>
impl<ReturnValue, ExtraInput, Alloc, U> Send for WorkerPool<ReturnValue, ExtraInput, Alloc, U>
impl<ReturnValue, ExtraInput, Alloc, U> Sync for WorkerPool<ReturnValue, ExtraInput, Alloc, U>
impl<ReturnValue, ExtraInput, Alloc, U> Unpin for WorkerPool<ReturnValue, ExtraInput, Alloc, U>
impl<ReturnValue, ExtraInput, Alloc, U> !UnwindSafe for WorkerPool<ReturnValue, ExtraInput, Alloc, U>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more