Skip to content

Commit

Permalink
Fix NeverReady to never be ready
Browse files Browse the repository at this point in the history
Also removed AlwaysReady since no one uses it.

PiperOrigin-RevId: 696311353
  • Loading branch information
fvoznika authored and gvisor-bot committed Nov 14, 2024
1 parent 4f92c28 commit 69f0f7c
Showing 1 changed file with 5 additions and 27 deletions.
32 changes: 5 additions & 27 deletions pkg/waiter/waiter.go
Original file line number Diff line number Diff line change
Expand Up @@ -259,45 +259,23 @@ func (q *Queue) IsEmpty() bool {
return q.list.Front() == nil
}

// AlwaysReady implements the Waitable interface but is always ready. Embedding
// this struct into another struct makes it implement the boilerplate empty
// functions automatically.
type AlwaysReady struct {
}

// Readiness always returns the input mask because this object is always ready.
func (*AlwaysReady) Readiness(mask EventMask) EventMask {
return mask
}

// EventRegister doesn't do anything because this object doesn't need to issue
// notifications because its readiness never changes.
func (*AlwaysReady) EventRegister(*Entry) error {
return nil
}

// EventUnregister doesn't do anything because this object doesn't need to issue
// notifications because its readiness never changes.
func (*AlwaysReady) EventUnregister(e *Entry) {
}

// NeverReady implements the Waitable interface but is never ready. Otherwise,
// this is exactly the same as AlwaysReady.
type NeverReady struct {
}

// Readiness always returns the input mask because this object is always ready.
func (*NeverReady) Readiness(mask EventMask) EventMask {
return mask
// Readiness always returns 0 because this object is never ready.
func (*NeverReady) Readiness(EventMask) EventMask {
return 0
}

// EventRegister doesn't do anything because this object doesn't need to issue
// notifications because its readiness never changes.
func (*NeverReady) EventRegister(e *Entry) error {
func (*NeverReady) EventRegister(*Entry) error {
return nil
}

// EventUnregister doesn't do anything because this object doesn't need to issue
// notifications because its readiness never changes.
func (*NeverReady) EventUnregister(e *Entry) {
func (*NeverReady) EventUnregister(*Entry) {
}

0 comments on commit 69f0f7c

Please sign in to comment.