tcplane/server/worker/
impl.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use super::r#type::Worker;
use crate::server::thread_pool::r#type::Job;
use http_type::*;
use std::{sync::mpsc::Receiver, thread::spawn};

impl Worker {
    #[inline]
    pub fn new(id: usize, receiver: ArcMutex<Receiver<Job>>) -> Worker {
        let thread = spawn(move || loop {
            let job = receiver.lock().unwrap().recv().unwrap();
            job();
        });
        Worker {
            id,
            thread: Some(thread),
        }
    }
}