Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pub struct Threadable<J> where J:Clone{
- slowdown_signal: Arc<AtomicBool>,
- semaphore: Arc<Semaphore>,
- termination_signal: Lockstep<Option<String>>,
- time: Lockstep<SystemTime>,
- readonly_data: Arc<J>
- }
- impl<J> Threadable<J> {
- pub fn create(starting_th: isize, max_th: isize, data: J) -> Threadable<J> {
- let slowdown = AtomicBool::new(false);
- let slowdown_signal: Arc<AtomicBool> = Arc::new(slowdown);
- let semaphore: Arc<Semaphore> = prepare_semaphore(starting_th, max_th);
- let termination_signal: Lockstep<Option<String>> = Arc::new(Mutex::new(None));
- let time: Lockstep<SystemTime> = Arc::new(Mutex::new(SystemTime::now()));
- let data = Arc::new(data);
- Threadable{slowdown_signal: slowdown_signal, semaphore:semaphore,
- termination_signal: termination_signal, time: time, readonly_data: data}
- }
- pub fn clone(&self) -> Threadable<J> {
- ...
- }
- ...
- }
Add Comment
Please, Sign In to add comment