Use eventloop package in containerd
It's first attempt to decouple code into independent modules for more effective unit-testing. Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
parent
7332e6e847
commit
79591b2ae1
2 changed files with 25 additions and 25 deletions
19
event.go
19
event.go
|
@ -63,3 +63,22 @@ type Event struct {
|
|||
type Handler interface {
|
||||
Handle(*Event) error
|
||||
}
|
||||
|
||||
type commonEvent struct {
|
||||
data *Event
|
||||
sv *Supervisor
|
||||
}
|
||||
|
||||
func (e *commonEvent) Handle() {
|
||||
h, ok := e.sv.handlers[e.data.Type]
|
||||
if !ok {
|
||||
e.data.Err <- ErrUnknownEvent
|
||||
return
|
||||
}
|
||||
err := h.Handle(e.data)
|
||||
if err != errDeferedResponse {
|
||||
e.data.Err <- err
|
||||
close(e.data.Err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue