pub fn release(&self, lock: &Lock, who: u64) -> Vec<u64> {
        let mut wakeup_list: Vec<u64> = vec![];
        for &key_hash in &lock.required_hashes[..lock.owned_count] {
            let mut latch = self.lock_latch(key_hash);
            let (v, front) = latch.pop_front(key_hash).unwrap();
            assert_eq!(front, who);
            assert_eq!(v, key_hash);
            if let Some(wakeup) = latch.get_first_req_by_hash(key_hash) {
                wakeup_list.push(wakeup);
            }
        }
        wakeup_list
    }
/// Releases all latches owned by the `lock` of command with ID `who`, returns the wakeup list.
///
/// Preconditions: the caller must ensure the command is at the front of the latches.
Releases all latches owned by the `lock` of command with ID `who`, returns the wakeup list.
Preconditions: the caller must ensure the command is at the front of the latches.
Releases all latches owned by the ` lock ` of command with ID ` who ` returns the wakeup list . Preconditions : the caller must ensure the command is at the front of the latches .
pub fn release(&self, lock: &Lock, who: u64) -> Vec<u64> {
        let mut wakeup_list: Vec<u64> = vec![];
        for &key_hash in &lock.required_hashes[..lock.owned_count] {
            let mut latch = self.lock_latch(key_hash);
            let (v, front) = latch.pop_front(key_hash).unwrap();
            assert_eq!(front, who);
            assert_eq!(v, key_hash);
            if let Some(wakeup) = latch.get_first_req_by_hash(key_hash) {
                wakeup_list.push(wakeup);
            }
        }
        wakeup_list
    }
pub fn release ( & self , lock : & Lock , who : u64 ) -> Vec < u64 > { let mut wakeup_list : Vec < u64 > = vec ! [ ] ; for & key_hash in & lock . required_hashes [ .. lock . owned_count ] { let mut latch = self . lock_latch ( key_hash ) ; let ( v , front ) = latch . pop_front ( key_hash ) . unwrap ( ) ; assert_eq ! ( front who ) ; assert_eq ! ( v key_hash ) ; if let Some ( wakeup ) = latch . get_first_req_by_hash ( key_hash ) { wakeup_list . push ( wakeup ) ; } } wakeup_list }
Releases all latches owned by the `lock` of command with ID `who`, returns the wakeup list.
Releases all latches owned by the ` lock ` of command with ID ` who ` returns the wakeup list .
&self
lock
&Lock
who
u64