diff --git a/src/machine.rs b/src/machine.rs index 5fae20c..0d0aa86 100644 --- a/src/machine.rs +++ b/src/machine.rs @@ -1,6 +1,5 @@ use std::io::{Read, Write}; -use std::sync::Mutex; -use std::rc::Rc; +use std::sync::{Mutex, Arc}; use Result; use block::Block; @@ -32,7 +31,7 @@ pub struct Machine { pub heap: Heap, pub stream_in: Box, - pub stream_out: Rc>, + pub stream_out: Arc>, } @@ -45,7 +44,7 @@ impl Machine { block, frame: vec![Frame::new(ANTI_BS_SIZE)], stream_in: Box::new(::std::io::stdin()), - stream_out: Rc::new(Mutex::new(::std::io::stdout())), + stream_out: Arc::new(Mutex::new(::std::io::stdout())), #[cfg(feature = "bonus:network")] net: NetStack::new(), @@ -152,7 +151,7 @@ impl Machine { self.stream_in = instream; } - pub fn set_output(&mut self, outstream: Rc>) { + pub fn set_output(&mut self, outstream: Arc>) { self.stream_out = outstream; } } \ No newline at end of file diff --git a/tests/advanced1.rs b/tests/advanced1.rs index 8b498a6..42eff32 100644 --- a/tests/advanced1.rs +++ b/tests/advanced1.rs @@ -1,7 +1,6 @@ extern crate rustijvm; -use std::rc::Rc; -use std::sync::Mutex; +use std::sync::{Arc, Mutex}; use std::io::{Cursor, Seek, SeekFrom, Read}; fn steps(machine: &mut rustijvm::Machine, num: usize) { @@ -12,7 +11,7 @@ fn steps(machine: &mut rustijvm::Machine, num: usize) { #[test] fn advanced1() { - let output: Rc>>> = Rc::new(Mutex::new(Cursor::new(Vec::new()))); + let output: Arc>>> = Arc::new(Mutex::new(Cursor::new(Vec::new()))); let input = Box::new("A".as_bytes()); let mut machine = rustijvm::Machine::new_from_file("files/task5/all_regular.ijvm").unwrap(); machine.set_input(input); diff --git a/tests/advanced4.rs b/tests/advanced4.rs index 4ef1d75..bf11e29 100644 --- a/tests/advanced4.rs +++ b/tests/advanced4.rs @@ -1,12 +1,11 @@ extern crate rustijvm; -use std::rc::Rc; -use std::sync::Mutex; +use std::sync::{Arc, Mutex}; use std::io::{Cursor, Seek, SeekFrom, Read}; #[test] fn advanced4_tanenbaum() { - let rc = Rc::new(Mutex::new(Cursor::new(Vec::new()))); + let rc = Arc::new(Mutex::new(Cursor::new(Vec::new()))); let mut machine = rustijvm::Machine::new_from_file("files/advanced/Tanenbaum.ijvm").unwrap(); machine.set_output(rc.clone()); machine.run().unwrap(); diff --git a/tests/bonusheap.rs b/tests/bonusheap.rs index a763b9b..e3289be 100644 --- a/tests/bonusheap.rs +++ b/tests/bonusheap.rs @@ -1,13 +1,12 @@ extern crate rustijvm; use std::fs::File; -use std::rc::Rc; -use std::sync::Mutex; +use std::sync::{Arc, Mutex}; use std::io::{Cursor, Seek, SeekFrom, Read}; fn run_bfi(file: &str) -> String { let file = File::open(file).expect("Missing bf file"); - let rc = Rc::new(Mutex::new(Cursor::new(Vec::new()))); + let rc = Arc::new(Mutex::new(Cursor::new(Vec::new()))); let mut machine = rustijvm::Machine::new_from_file("files/bonus/bfi.ijvm").unwrap(); machine.set_output(rc.clone()); machine.set_input(Box::new(file)); diff --git a/tests/task4.rs b/tests/task4.rs index 41f598b..15ca0c4 100644 --- a/tests/task4.rs +++ b/tests/task4.rs @@ -1,8 +1,7 @@ extern crate rustijvm; use std::io::{Cursor, Read, Seek, SeekFrom}; -use std::rc::Rc; -use std::sync::Mutex; +use std::sync::{Arc, Mutex}; fn steps(machine: &mut rustijvm::Machine, num: usize) { for _ in 0..num { @@ -84,7 +83,7 @@ fn task4_complex_load() { #[test] fn task4_iteration_load() { - let rc = Rc::new(Mutex::new(Cursor::new(Vec::new()))); + let rc = Arc::new(Mutex::new(Cursor::new(Vec::new()))); let mut machine = rustijvm::Machine::new_from_file("files/task4/LoadTest4.ijvm").unwrap(); machine.set_output(rc.clone());