From 03b94e691b282002912433266be4ba74df64c6d7 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Thu, 20 Apr 2017 10:53:35 -0500 Subject: interrupt::free: don't let the token escape the critical section --- src/interrupt.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/interrupt.rs b/src/interrupt.rs index a96b845..a4eac00 100644 --- a/src/interrupt.rs +++ b/src/interrupt.rs @@ -75,14 +75,14 @@ pub struct CriticalSection { /// This as also known as a "critical section". pub fn free(f: F) -> R where - F: FnOnce(CriticalSection) -> R, + F: FnOnce(&CriticalSection) -> R, { let primask = ::register::primask::read(); // disable interrupts disable(); - let r = f(CriticalSection { _0: () }); + let r = f(&CriticalSection { _0: () }); // If the interrupts were active before our `disable` call, then re-enable // them. Otherwise, keep them disabled -- cgit v1.2.3