From 1b1df985a4b6faedbc68ede45ce6ec95b884949d Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Wed, 11 Aug 2021 17:40:48 -0400 Subject: [PATCH] Clean up ActorId and Handle types and allocators --- src/actor.rs | 20 ++++++++++++++++---- src/lib.rs | 18 ------------------ 2 files changed, 16 insertions(+), 22 deletions(-) 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) -}