Update lib.rs

This commit is contained in:
michael-bailey 2020-07-17 19:50:37 +01:00
parent 226bea4623
commit bfd0ee00a8
1 changed files with 4 additions and 4 deletions

View File

@ -1,5 +1,5 @@
use std::thread; use std::thread;
use std::sync::mpsc; use crossbeam::{unbounded , Sender, Receiver};
use std::sync::Arc; use std::sync::Arc;
use std::sync::Mutex; use std::sync::Mutex;
@ -10,7 +10,7 @@ enum Message {
pub struct ThreadPool{ pub struct ThreadPool{
workers: Vec<Worker>, workers: Vec<Worker>,
sender: mpsc::Sender<Message>, sender: Sender<Message>,
} }
type Job = Box<dyn FnOnce() + Send + 'static>; type Job = Box<dyn FnOnce() + Send + 'static>;
@ -26,7 +26,7 @@ impl ThreadPool{
pub fn new(size: usize) -> ThreadPool { pub fn new(size: usize) -> ThreadPool {
assert!(size > 0); assert!(size > 0);
let (sender, receiver) = mpsc::channel(); let (sender, receiver) = unbounded();
let receiver = Arc::new(Mutex::new(receiver)); let receiver = Arc::new(Mutex::new(receiver));
@ -56,7 +56,7 @@ struct Worker {
} }
impl Worker { impl Worker {
fn new(id: usize, receiver: Arc<Mutex<mpsc::Receiver<Message>>>) -> Worker { fn new(id: usize, receiver: Arc<Mutex<Receiver<Message>>>) -> Worker {
let thread = thread::spawn(move || { let thread = thread::spawn(move || {
loop{ loop{
let message = receiver.lock().unwrap().recv().unwrap(); let message = receiver.lock().unwrap().recv().unwrap();