cleanup, optimize. use Arc for reference sharing
This commit is contained in:
@@ -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), &[]);
|
||||
|
||||
Reference in New Issue
Block a user