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:
Alexander Morozov 2015-12-16 13:53:11 -08:00
parent 7332e6e847
commit 79591b2ae1
2 changed files with 25 additions and 25 deletions

View file

@ -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
}
}