Update lib.rs
This commit is contained in:
parent
226bea4623
commit
bfd0ee00a8
|
|
@ -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();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue