aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-08-31 10:29:06 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-09-01 23:47:19 -0700
commitb7901579d586b6c68119ef65bc184a7369492791 (patch)
tree2385b41fc227702192db5a9ef8caebdc30b32ec8 /src
parent138c2a3bfd5d12efaeffcbf92dd14f8c26dbaafc (diff)
downloadniri-b7901579d586b6c68119ef65bc184a7369492791.tar.gz
niri-b7901579d586b6c68119ef65bc184a7369492791.tar.bz2
niri-b7901579d586b6c68119ef65bc184a7369492791.zip
Change IdCounter to be backed by an AtomicU64
Let's see if anyone complains.
Diffstat (limited to 'src')
-rw-r--r--src/backend/mod.rs4
-rw-r--r--src/layout/workspace.rs4
-rw-r--r--src/utils/id.rs11
-rw-r--r--src/window/mapped.rs4
4 files changed, 10 insertions, 13 deletions
diff --git a/src/backend/mod.rs b/src/backend/mod.rs
index 40edef32..bbacf1cf 100644
--- a/src/backend/mod.rs
+++ b/src/backend/mod.rs
@@ -37,7 +37,7 @@ pub type IpcOutputMap = HashMap<OutputId, niri_ipc::Output>;
static OUTPUT_ID_COUNTER: IdCounter = IdCounter::new();
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
-pub struct OutputId(u32);
+pub struct OutputId(u64);
impl OutputId {
fn next() -> OutputId {
@@ -45,7 +45,7 @@ impl OutputId {
}
pub fn get(self) -> u64 {
- u64::from(self.0)
+ self.0
}
}
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index da1be408..26d6a785 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -123,7 +123,7 @@ pub struct OutputId(String);
static WORKSPACE_ID_COUNTER: IdCounter = IdCounter::new();
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
-pub struct WorkspaceId(u32);
+pub struct WorkspaceId(u64);
impl WorkspaceId {
fn next() -> WorkspaceId {
@@ -131,7 +131,7 @@ impl WorkspaceId {
}
pub fn get(self) -> u64 {
- u64::from(self.0)
+ self.0
}
}
diff --git a/src/utils/id.rs b/src/utils/id.rs
index 94d7f8ee..c21511e6 100644
--- a/src/utils/id.rs
+++ b/src/utils/id.rs
@@ -1,11 +1,8 @@
-use std::sync::atomic::{AtomicU32, Ordering};
+use std::sync::atomic::{AtomicU64, Ordering};
/// Counter that returns unique IDs.
-///
-/// Under the hood it uses a `u32` that will eventually wrap around. When incrementing it once a
-/// second, it will wrap around after about 136 years.
pub struct IdCounter {
- value: AtomicU32,
+ value: AtomicU64,
}
impl IdCounter {
@@ -13,11 +10,11 @@ impl IdCounter {
Self {
// Start from 1 to reduce the possibility that some other code that uses these IDs will
// get confused.
- value: AtomicU32::new(1),
+ value: AtomicU64::new(1),
}
}
- pub fn next(&self) -> u32 {
+ pub fn next(&self) -> u64 {
self.value.fetch_add(1, Ordering::Relaxed)
}
}
diff --git a/src/window/mapped.rs b/src/window/mapped.rs
index 60cf7cd9..a2875d02 100644
--- a/src/window/mapped.rs
+++ b/src/window/mapped.rs
@@ -98,7 +98,7 @@ niri_render_elements! {
static MAPPED_ID_COUNTER: IdCounter = IdCounter::new();
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
-pub struct MappedId(u32);
+pub struct MappedId(u64);
impl MappedId {
fn next() -> MappedId {
@@ -106,7 +106,7 @@ impl MappedId {
}
pub fn get(self) -> u64 {
- u64::from(self.0)
+ self.0
}
}