engine: resources: nspawn: Remove godbus channel buffer

https://github.com/godbus/dbus/issues/94 is fixed with
https://github.com/godbus/dbus/pull/105, so the
buffered channel is no longer necessary.
This commit is contained in:
Jonathan Gold
2018-04-26 19:33:43 -04:00
parent b80a505be5
commit d7029871b1

View File

@@ -151,6 +151,7 @@ func (obj *NspawnRes) Watch() error {
if err != nil { if err != nil {
return errwrap.Wrapf(err, "failed to connect to bus") return errwrap.Wrapf(err, "failed to connect to bus")
} }
defer bus.Close()
// add a match rule to match messages going through the message bus // add a match rule to match messages going through the message bus
call := bus.BusObject().Call("org.freedesktop.DBus.AddMatch", 0, call := bus.BusObject().Call("org.freedesktop.DBus.AddMatch", 0,
@@ -160,10 +161,10 @@ func (obj *NspawnRes) Watch() error {
if err := call.Err; err != nil { if err := call.Err; err != nil {
return err return err
} }
// TODO: verify that implementation doesn't deadlock if there are unread busChan := make(chan *dbus.Signal)
// messages left in the channel defer close(busChan)
busChan := make(chan *dbus.Signal, 10)
bus.Signal(busChan) bus.Signal(busChan)
defer bus.RemoveSignal(busChan) // not needed here, but nice for symmetry
// notify engine that we're running // notify engine that we're running
if err := obj.init.Running(); err != nil { if err := obj.init.Running(); err != nil {
@@ -171,10 +172,6 @@ func (obj *NspawnRes) Watch() error {
} }
var send = false // send event? var send = false // send event?
defer close(busChan)
defer bus.Close()
defer bus.RemoveSignal(busChan)
for { for {
select { select {
case event := <-busChan: case event := <-busChan: