pub(in crate::pagecache) fn with_sa<B, F>(&self, f: F) -> B
    where
        F: FnOnce(&mut SegmentAccountant) -> B,
    {
        let start = clock();

        debug_delay();
        let mut sa = self.segment_accountant.lock();

        let locked_at = clock();

        M.accountant_lock.measure(locked_at - start);

        let ret = f(&mut sa);

        drop(sa);

        M.accountant_hold.measure(clock() - locked_at);

        ret
    }
/// `SegmentAccountant` access for coordination with the `PageCache`
`SegmentAccountant` access for coordination with the `PageCache`
` SegmentAccountant ` access for coordination with the ` PageCache `
pub(in crate::pagecache) fn with_sa<B, F>(&self, f: F) -> B
    where
        F: FnOnce(&mut SegmentAccountant) -> B,
    {
        let start = clock();
        debug_delay();
        let mut sa = self.segment_accountant.lock();
        let locked_at = clock();
        M.accountant_lock.measure(locked_at - start);
        let ret = f(&mut sa);
        drop(sa);
        M.accountant_hold.measure(clock() - locked_at);
        ret
    }
pub ( in crate :: pagecache ) fn with_sa < B , F > ( & self , f : F ) -> B where F : FnOnce ( & mut SegmentAccountant ) -> B , { let start = clock ( ) ; debug_delay ( ) ; let mut sa = self . segment_accountant . lock ( ) ; let locked_at = clock ( ) ; M . accountant_lock . measure ( locked_at - start ) ; let ret = f ( & mut sa ) ; drop ( sa ) ; M . accountant_hold . measure ( clock ( ) - locked_at ) ; ret }
`SegmentAccountant` access for coordination with the `PageCache`
` SegmentAccountant ` access for coordination with the ` PageCache `
&self
f
F