cleanup, optimize. use Arc for reference sharing

This commit is contained in:
2020-09-28 20:12:31 +02:00
parent d5de189af6
commit 3599cb46c4
20 changed files with 111 additions and 119 deletions
+7 -7
View File
@@ -1,16 +1,16 @@
#[macro_use]
extern crate log;
use std::time::Duration;
use std::sync::Arc;
use simple_logger::SimpleLogger;
use crsn::asm::data::literal::Addr;
use crsn::runtime::run_thread::{RunThread, ThreadToken};
use crsn::runtime::run_thread;
use crsn_arith::ArithOps;
use crsn_stacks::StackOps;
use std::sync::atomic::AtomicU64;
use crsn::runtime::run_thread;
fn main() {
SimpleLogger::new().init().unwrap();
@@ -91,16 +91,16 @@ fn main() {
)
";
let parsers = Box::leak(Box::new(vec![
let parsers = Arc::new(vec![
ArithOps::new(),
StackOps::new(),
]));
]);
let parsed = crsn::asm::assemble(program, parsers.as_slice()).unwrap();
let parsed = crsn::asm::assemble(program, parsers).unwrap();
let uniq = run_thread::new_uniq();
let mut thread1 = RunThread::new(ThreadToken(0), Some(uniq), parsed.clone(), Addr(0), &[]);
let thread1 = RunThread::new(ThreadToken(0), Some(uniq.clone()), parsed.clone(), Addr(0), &[]);
//thread1.set_speed(Duration::from_millis(250));
let _thread2 = RunThread::new(ThreadToken(1), Some(uniq), parsed.clone(), Addr(0), &[]);