use crate::*;
impl Worker {
pub fn new(id: usize, receiver: Arc<Mutex<Receiver<ThreadPoolJob>>>) -> Option<Worker> {
spawn(|| {
let _ = recoverable_spawn(move || {
loop {
if let Ok(receiver_lock) = receiver.lock()
&& let Ok(job) = receiver_lock.recv()
{
let _ = recoverable_spawn(job);
}
}
});
});
Some(Worker { id })
}
}