@@ -352,7 +352,7 @@ pub use std::sync::OnceLock as OnceCell;
352
352
353
353
pub use std:: sync:: atomic:: { AtomicBool , AtomicU32 , AtomicU64 , AtomicUsize } ;
354
354
355
- pub type MTRef < ' a , T > = & ' a T ;
355
+ pub type MTLockRef < ' a , T > = & ' a MTLock < T > ;
356
356
357
357
#[ derive( Debug , Default ) ]
358
358
pub struct MTLock < T > ( Lock < T > ) ;
@@ -422,9 +422,10 @@ unsafe impl<T: DynSend> Send for FromDyn<T> {}
422
422
#[ cfg( parallel_compiler) ]
423
423
unsafe impl < T : DynSync > Sync for FromDyn < T > { }
424
424
425
- impl < T > const std:: ops:: Deref for FromDyn < T > {
425
+ impl < T > std:: ops:: Deref for FromDyn < T > {
426
426
type Target = T ;
427
427
428
+ #[ inline( always) ]
428
429
fn deref ( & self ) -> & Self :: Target {
429
430
& self . 0
430
431
}
@@ -564,23 +565,25 @@ pub struct LockGuard<'a, T> {
564
565
marker : PhantomData < & ' a mut T > ,
565
566
}
566
567
567
- impl < T > const Deref for LockGuard < ' _ , T > {
568
+ impl < T > Deref for LockGuard < ' _ , T > {
568
569
type Target = T ;
569
570
571
+ #[ inline( always) ]
570
572
fn deref ( & self ) -> & T {
571
573
unsafe { & * self . lock . data . get ( ) }
572
574
}
573
575
}
574
576
575
- impl < T > const DerefMut for LockGuard < ' _ , T > {
577
+ impl < T > DerefMut for LockGuard < ' _ , T > {
578
+ #[ inline( always) ]
576
579
fn deref_mut ( & mut self ) -> & mut T {
577
580
unsafe { & mut * self . lock . data . get ( ) }
578
581
}
579
582
}
580
583
581
584
#[ inline( never) ]
582
- unsafe fn unlock_mt < T > ( guard : & mut LockGuard < ' _ , T > ) {
583
- guard. lock . mutex . unlock ( )
585
+ fn unlock_mt < T > ( guard : & mut LockGuard < ' _ , T > ) {
586
+ unsafe { guard. lock . mutex . unlock ( ) }
584
587
}
585
588
586
589
impl < ' a , T > Drop for LockGuard < ' a , T > {
@@ -590,7 +593,7 @@ impl<'a, T> Drop for LockGuard<'a, T> {
590
593
debug_assert ! ( self . lock. borrow. get( ) ) ;
591
594
self . lock . borrow . set ( false ) ;
592
595
} else {
593
- unsafe { unlock_mt ( self ) }
596
+ unlock_mt ( self )
594
597
}
595
598
}
596
599
}
0 commit comments