mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-24 14:45:56 +00:00
Move ChangeReceiver main block into its own function
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
|
|
||||||
use crossbeam_channel::{select, Sender};
|
use crossbeam_channel::{select, Receiver, Sender};
|
||||||
use jod_thread::JoinHandle;
|
use jod_thread::JoinHandle;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
@@ -26,16 +26,31 @@ impl ChangeProcessor {
|
|||||||
imfs: Arc<Mutex<Imfs<F>>>,
|
imfs: Arc<Mutex<Imfs<F>>>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let (shutdown_sender, shutdown_receiver) = crossbeam_channel::bounded(1);
|
let (shutdown_sender, shutdown_receiver) = crossbeam_channel::bounded(1);
|
||||||
|
|
||||||
|
let thread_handle = jod_thread::Builder::new()
|
||||||
|
.name("ChangeProcessor thread".to_owned())
|
||||||
|
.spawn(move || Self::main_task(shutdown_receiver, tree, message_queue, imfs))
|
||||||
|
.expect("Could not start ChangeProcessor thread");
|
||||||
|
|
||||||
|
Self {
|
||||||
|
shutdown_sender,
|
||||||
|
thread_handle,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main_task<F: ImfsFetcher>(
|
||||||
|
shutdown_receiver: Receiver<()>,
|
||||||
|
tree: Arc<Mutex<RojoTree>>,
|
||||||
|
message_queue: Arc<MessageQueue<AppliedPatchSet>>,
|
||||||
|
imfs: Arc<Mutex<Imfs<F>>>,
|
||||||
|
) {
|
||||||
|
log::trace!("ChangeProcessor thread started");
|
||||||
|
|
||||||
let imfs_receiver = {
|
let imfs_receiver = {
|
||||||
let imfs = imfs.lock().unwrap();
|
let imfs = imfs.lock().unwrap();
|
||||||
imfs.change_receiver()
|
imfs.change_receiver()
|
||||||
};
|
};
|
||||||
|
|
||||||
let thread_handle = jod_thread::Builder::new()
|
|
||||||
.name("ChangeProcessor thread".to_owned())
|
|
||||||
.spawn(move || {
|
|
||||||
log::trace!("ChangeProcessor thread started");
|
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
select! {
|
select! {
|
||||||
recv(imfs_receiver) -> event => {
|
recv(imfs_receiver) -> event => {
|
||||||
@@ -67,13 +82,6 @@ impl ChangeProcessor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log::trace!("ChangeProcessor thread stopping");
|
log::trace!("ChangeProcessor thread stopping");
|
||||||
})
|
|
||||||
.expect("Could not start ChangeProcessor thread");
|
|
||||||
|
|
||||||
Self {
|
|
||||||
shutdown_sender,
|
|
||||||
thread_handle,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user