Skip to content

Commit

Permalink
vickylib: two read locks don't conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
Kek5chen committed Apr 24, 2024
1 parent c2d7ed8 commit 4e280f8
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions vicky/src/lib/vicky/scheduler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,10 @@ impl LockSum {
}

pub fn can_add_lock(&self, lock: &Lock) -> bool {
match (&self.lock, lock) {
(Lock::WRITE { object: _ }, Lock::WRITE { object: _ }) => false,
(Lock::WRITE { object: _ }, Lock::READ { object: _ }) => false,
(Lock::READ { object: _ }, Lock::WRITE { object: _ }) => false,
(Lock::READ { object }, Lock::READ { object: object2 }) => object == object2,
}
!matches!((&self.lock, lock),
(Lock::WRITE { name: _ }, Lock::WRITE { name: _ }) |
(Lock::WRITE { name: _ }, Lock::READ { name: _ }) |
(Lock::READ { name: _ }, Lock::WRITE { name: _ }))
}

pub fn add_lock(&mut self, lock: &Lock) -> Result<(), SchedulerError> {
Expand Down

0 comments on commit 4e280f8

Please sign in to comment.