diff --git a/src/actor.rs b/src/actor.rs index be0f378..63d1385 100644 --- a/src/actor.rs +++ b/src/actor.rs @@ -1,4 +1,3 @@ -use super::ActorId; use super::schemas::sturdy; use super::error::Error; use super::error::encode_error; @@ -31,6 +30,7 @@ use tracing::Instrument; pub type AnyValue = super::schemas::internal_protocol::_Any; +pub type ActorId = u64; pub type Handle = u64; pub type ActorResult = Result<(), Error>; @@ -160,6 +160,18 @@ where //--------------------------------------------------------------------------- +const BUMP_AMOUNT: u8 = 10; + +static NEXT_ACTOR_ID: AtomicU64 = AtomicU64::new(1); +fn next_actor_id() -> ActorId { + NEXT_ACTOR_ID.fetch_add(BUMP_AMOUNT.into(), Ordering::Relaxed) +} + +static NEXT_HANDLE: AtomicU64 = AtomicU64::new(3); +fn next_handle() -> Handle { + NEXT_HANDLE.fetch_add(BUMP_AMOUNT.into(), Ordering::Relaxed) +} + static NEXT_DEBTOR_ID: AtomicU64 = AtomicU64::new(4); preserves_schema::support::lazy_static! { @@ -273,7 +285,7 @@ impl<'activation> Activation<'activation> { } pub fn assert(&mut self, r: &Arc>, a: M) -> Handle { - let handle = crate::next_handle(); + let handle = next_handle(); { let r = Arc::clone(r); self.pending.queue_for(&r).push(Box::new( @@ -291,7 +303,7 @@ impl<'activation> Activation<'activation> { pub fn assert_for_myself(&mut self, r: &Arc>, a: M) -> Handle { self.immediate_oid(r); - let handle = crate::next_handle(); + let handle = next_handle(); { let r = Arc::clone(r); self.pending.for_myself.push(Box::new( @@ -494,7 +506,7 @@ impl Drop for Mailbox { impl Actor { pub fn new() -> Self { let (tx, rx) = unbounded_channel(); - let actor_id = crate::next_actor_id(); + let actor_id = next_actor_id(); // tracing::trace!(id = actor_id, "Actor::new"); Actor { rx, diff --git a/src/lib.rs b/src/lib.rs index 6039c53..c9b4937 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,9 +1,5 @@ pub use preserves::value; -use std::sync::atomic::AtomicU64; -use std::sync::atomic::Ordering; -use actor::Handle; - pub mod actor; pub mod bag; pub mod config; @@ -23,17 +19,3 @@ pub use during::entity; pub use tracer::tracer; pub use tracer::tracer_top; pub use tracer::convenient_logging; - -pub type ActorId = u64; - -const BUMP_AMOUNT: u8 = 10; - -static NEXT_ACTOR_ID: AtomicU64 = AtomicU64::new(1); -pub fn next_actor_id() -> ActorId { - NEXT_ACTOR_ID.fetch_add(BUMP_AMOUNT.into(), Ordering::Relaxed) -} - -static NEXT_HANDLE: AtomicU64 = AtomicU64::new(3); -pub fn next_handle() -> Handle { - NEXT_HANDLE.fetch_add(BUMP_AMOUNT.into(), Ordering::Relaxed) -}