unsafe fn rollback() -> bool where Self: MemPool {
        // Self::discard(crate::ll::cpu());
        if let Some(journal) = Journal::<Self>::current(false) {
            *journal.1 -= 1;

            if *journal.1 == 0 {
                log!(Self, White, "ROLLBACK", "JRNL: {:?}", journal.0);

                let journal = as_mut(journal.0);
                journal.rollback(
                    #[cfg(feature = "check_double_free")]
                    &mut *Self::dealloc_history()
                );
                journal.clear(
                    #[cfg(feature = "check_double_free")]
                    &mut *Self::dealloc_history()
                );
                return true;
            } else {
                // Propagate the panic to the upper transactions
                panic!("Unsuccessful nested transaction");
            }
        }
        false
    }
/// Discards all changes and clears the logs
///
/// If the transaction is nested, it propagates the panic up to the top most
/// transaction to make all of them tainted. It returns true if it runs the
/// rollback procedure; otherwise false.
///
/// # Safety
///
/// This function is for internal use and should not be called elsewhere.
///
Discards all changes and clears the logs
If the transaction is nested, it propagates the panic up to the top most
transaction to make all of them tainted. It returns true if it runs the
rollback procedure; otherwise false.
Discards all changes and clears the logs If the transaction is nested it propagates the panic up to the top most transaction to make all of them tainted . It returns true if it runs the rollback procedure ; otherwise false .
unsafe fn rollback() -> bool where Self: MemPool {
        // Self::discard(crate::ll::cpu());
        if let Some(journal) = Journal::<Self>::current(false) {
            *journal.1 -= 1;
            if *journal.1 == 0 {
                log!(Self, White, "ROLLBACK", "JRNL: {:?}", journal.0);
                let journal = as_mut(journal.0);
                journal.rollback(
                    #[cfg(feature = "check_double_free")]
                    &mut *Self::dealloc_history()
                );
                journal.clear(
                    #[cfg(feature = "check_double_free")]
                    &mut *Self::dealloc_history()
                );
                return true;
            } else {
                // Propagate the panic to the upper transactions
                panic!("Unsuccessful nested transaction");
            }
        }
        false
    }
unsafe fn rollback ( ) -> bool where Self : MemPool { // Self::discard(crate::ll::cpu()); if let Some ( journal ) = Journal :: < Self > :: current ( false ) { * journal . 1 -= 1 ; if * journal . 1 == 0 { log ! ( Self White " " " " journal 0 ) ; let journal = as_mut ( journal . 0 ) ; journal . rollback ( # [ cfg ( feature " " ) ] & mut * Self :: dealloc_history ( ) ) ; journal . clear ( # [ cfg ( feature " " ) ] & mut * Self :: dealloc_history ( ) ) ; return true ; } else { // Propagate the panic to the upper transactions panic ! ( " " ) ; } } false }
Discards all changes and clears the logs
If the transaction is nested, it propagates the panic up to the top most
transaction to make all of them tainted.
Discards all changes and clears the logs If the transaction is nested it propagates the panic up to the top most transaction to make all of them tainted .
safety
This function is for internal use and should not be called elsewhere.
This function is for internal use and should not be called elsewhere .