about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Bächler <thomas.baechler@gmx.de>2020-03-21 19:48:23 +0100
committerThomas Bächler <thomas.baechler@gmx.de>2020-03-21 19:48:23 +0100
commitc8140a88f67cf1fea104b1aaa615af7816984615 (patch)
tree04f0a756194d67eec457b152a67d33c3cb725db4
parent98803c182b2ba6ef5dccb6bf501958249295eac0 (diff)
downloadrust-c8140a88f67cf1fea104b1aaa615af7816984615.tar.gz
rust-c8140a88f67cf1fea104b1aaa615af7816984615.zip
Return NonZeroU64 from ThreadId::as_u64.
As discussed in #67939, this allows turning Option<ThreadId> into Option<NonZeroU64> which
can then be stored inside an AtomicU64.
-rw-r--r--src/librustc_data_structures/profiling.rs4
-rw-r--r--src/libstd/thread/mod.rs4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/librustc_data_structures/profiling.rs b/src/librustc_data_structures/profiling.rs
index a70314c35c0..a7cdc48d603 100644
--- a/src/librustc_data_structures/profiling.rs
+++ b/src/librustc_data_structures/profiling.rs
@@ -345,7 +345,7 @@ impl SelfProfilerRef {
     ) {
         drop(self.exec(event_filter, |profiler| {
             let event_id = StringId::new_virtual(query_invocation_id.0);
-            let thread_id = std::thread::current().id().as_u64() as u32;
+            let thread_id = std::thread::current().id().as_u64().get() as u32;
 
             profiler.profiler.record_instant_event(
                 event_kind(profiler),
@@ -522,7 +522,7 @@ impl<'a> TimingGuard<'a> {
         event_kind: StringId,
         event_id: EventId,
     ) -> TimingGuard<'a> {
-        let thread_id = std::thread::current().id().as_u64() as u32;
+        let thread_id = std::thread::current().id().as_u64().get() as u32;
         let raw_profiler = &profiler.profiler;
         let timing_guard =
             raw_profiler.start_recording_interval_event(event_kind, event_id, thread_id);
diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs
index 0dc43c7e651..282e268efd2 100644
--- a/src/libstd/thread/mod.rs
+++ b/src/libstd/thread/mod.rs
@@ -1082,8 +1082,8 @@ impl ThreadId {
     /// it is not guaranteed which values new threads will return, and this may
     /// change across Rust versions.
     #[unstable(feature = "thread_id_value", issue = "67939")]
-    pub fn as_u64(&self) -> u64 {
-        self.0.get()
+    pub fn as_u64(&self) -> NonZeroU64 {
+        self.0
     }
 }