You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
614 B
26 lines
614 B
use std::sync::Arc;
|
|
use std::sync::atomic::{AtomicU64, Ordering};
|
|
use std::time::Duration;
|
|
|
|
use crate::asm::data::literal::Value;
|
|
use crate::runtime::program::Program;
|
|
use crate::runtime::run_thread::ThreadToken;
|
|
|
|
pub struct ThreadInfo {
|
|
/// Thread ID
|
|
pub id: ThreadToken,
|
|
/// Thread ID
|
|
pub(crate) uniq: Arc<AtomicU64>,
|
|
/// Program to run
|
|
pub program: Arc<Program>,
|
|
/// Program to run
|
|
pub(crate) cycle_time: Duration,
|
|
}
|
|
|
|
pub const UNIQ_BASE: u64 = 0x6372_736e_0000_0000;
|
|
|
|
impl ThreadInfo {
|
|
pub fn uniq(&self) -> Value {
|
|
self.uniq.fetch_add(1, Ordering::Relaxed)
|
|
}
|
|
}
|
|
|