👕 refactor
parent
1acd125fdd
commit
6ef12c5859
23
src/main.rs
23
src/main.rs
|
@ -20,10 +20,15 @@ fn main() -> Result <(), TaskError>
|
|||
Ok (())
|
||||
}
|
||||
|
||||
struct Driver <'a>
|
||||
struct ThreadSystem <'a>
|
||||
{
|
||||
pool: &'a ThreadPool,
|
||||
send: mpsc::SyncSender <TaskOutput>,
|
||||
}
|
||||
|
||||
struct Driver <'a>
|
||||
{
|
||||
thread_sys: ThreadSystem <'a>,
|
||||
recv: mpsc::Receiver <TaskOutput>,
|
||||
|
||||
ctl: Controller,
|
||||
|
@ -39,10 +44,15 @@ impl <'a> Driver <'_>
|
|||
{
|
||||
let (send, recv) = mpsc::sync_channel (8);
|
||||
|
||||
Driver
|
||||
let thread_sys = ThreadSystem
|
||||
{
|
||||
pool,
|
||||
send,
|
||||
};
|
||||
|
||||
Driver
|
||||
{
|
||||
thread_sys,
|
||||
recv,
|
||||
|
||||
ctl: Default::default (),
|
||||
|
@ -114,14 +124,15 @@ impl <'a> Driver <'_>
|
|||
let dur_encode = Duration::from_millis (20);
|
||||
let dur_transmit = Duration::from_millis (200);
|
||||
|
||||
let send = self.send.clone ();
|
||||
let pool = &self.thread_sys.pool;
|
||||
let send = self.thread_sys.send.clone ();
|
||||
|
||||
match event
|
||||
{
|
||||
TxPipelineEvent::Capture => {
|
||||
let cap = self.capture.start (())?;
|
||||
|
||||
self.pool.spawn (move ||
|
||||
pool.spawn (move ||
|
||||
{
|
||||
thread::sleep (dur_capture);
|
||||
let buf_raw = BufRaw
|
||||
|
@ -151,7 +162,7 @@ impl <'a> Driver <'_>
|
|||
{
|
||||
let mut encoder = self.encoder.start (EncoderTaskMetadata {})?;
|
||||
|
||||
self.pool.spawn (move ||
|
||||
pool.spawn (move ||
|
||||
{
|
||||
thread::sleep (dur_encode);
|
||||
encoder.try_handle_insert_data (&buf_raw.buf).unwrap ();
|
||||
|
@ -160,7 +171,7 @@ impl <'a> Driver <'_>
|
|||
},
|
||||
TxPipelineEvent::Transmit (_buf_enc) => {
|
||||
let tx = self.transmitter.start (())?;
|
||||
self.pool.spawn (move ||
|
||||
pool.spawn (move ||
|
||||
{
|
||||
thread::sleep (dur_transmit);
|
||||
send.send (TaskOutput::TxTransmit ((tx, false))).unwrap ();
|
||||
|
|
Loading…
Reference in New Issue