about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_prof/src/stop_watch.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/crates/ra_prof/src/stop_watch.rs b/crates/ra_prof/src/stop_watch.rs
index 8b8ec25a5fe..5e276190e5c 100644
--- a/crates/ra_prof/src/stop_watch.rs
+++ b/crates/ra_prof/src/stop_watch.rs
@@ -23,9 +23,14 @@ impl StopWatch {
     pub fn start() -> StopWatch {
         #[cfg(target_os = "linux")]
         let counter = {
-            let mut counter = perf_event::Builder::new().build().ok();
+            let mut counter = perf_event::Builder::new()
+                .build()
+                .map_err(|err| eprintln!("Failed to create perf counter: {}", err))
+                .ok();
             if let Some(counter) = &mut counter {
-                let _ = counter.enable();
+                if let Err(err) = counter.enable() {
+                    eprintln!("Failed to start perf counter: {}", err)
+                }
             }
             counter
         };
@@ -47,7 +52,9 @@ impl StopWatch {
         let time = self.time.elapsed();
 
         #[cfg(target_os = "linux")]
-        let instructions = self.counter.as_mut().and_then(|it| it.read().ok());
+        let instructions = self.counter.as_mut().and_then(|it| {
+            it.read().map_err(|err| eprintln!("Failed to read perf counter: {}", err)).ok()
+        });
         #[cfg(not(target_os = "linux"))]
         let instructions = None;