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:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user