unsafe fn new_slice<'a, T: PSafe + 'a>(x: &'a [T], journal: &Journal<Self>) -> &'a mut [T] where Self: MemPool {
        debug_assert!(mem::size_of::<T>() != 0, "Cannot allocate ZST");
        debug_assert!(!x.is_empty(), "Cannot allocate empty slice");

        let mut log = Log::drop_on_abort(u64::MAX, 1, journal);
        let (p, off, size, z) = Self::atomic_new_slice(x);
        log.set(off, size, z);
        Self::perform(z);
        p
    }
/// Allocates a new slice and then places `x` into it with `DropOnAbort` log
Allocates a new slice and then places `x` into it with `DropOnAbort` log
Allocates a new slice and then places ` x ` into it with ` DropOnAbort ` log
unsafe fn new_slice<'a, T: PSafe + 'a>(x: &'a [T], journal: &Journal<Self>) -> &'a mut [T] where Self: MemPool {
        debug_assert!(mem::size_of::<T>() != 0, "Cannot allocate ZST");
        debug_assert!(!x.is_empty(), "Cannot allocate empty slice");
        let mut log = Log::drop_on_abort(u64::MAX, 1, journal);
        let (p, off, size, z) = Self::atomic_new_slice(x);
        log.set(off, size, z);
        Self::perform(z);
        p
    }
unsafe fn new_slice < ' a , T : PSafe + ' a > ( x : & ' a [ T ] , journal : & Journal < Self > ) -> & ' a mut [ T ] where Self : MemPool { debug_assert ! ( mem size_of T ( ) 0 " " ) ; debug_assert ! ( x is_empty ( ) " " ) ; let mut log = Log :: drop_on_abort ( u64 :: MAX , 1 , journal ) ; let ( p , off , size , z ) = Self :: atomic_new_slice ( x ) ; log . set ( off , size , z ) ; Self :: perform ( z ) ; p }
Allocates a new slice and then places `x` into it with `DropOnAbort` log
Allocates a new slice and then places ` x ` into it with ` DropOnAbort ` log
x
&'a [T]
journal
&Journal<Self>