mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
session-daemon: fix dde-session-daemon high cpu issue
Caused by an issue of network module, dbus connection may be closed if IsDeviceEnabled() is called when initializing. And also adjust code order to ensure dbus.Wait() executed before initializing modules, so that dde-session-daemon will exited and restart nomally if any dbus error occured. tower: https://tower.im/projects/8f19f0bf0e754f0b82ef2c24bc230973/todos/5e26d05f489548858edc4e77c79c411d/#e339f0d9b44d4e6eb7ff6824a1b080ff Change-Id: Iac8e533a7e65fb8d648fa9493cbaef3e88f166c7
This commit is contained in:
parent
4b562203d3
commit
1a8c1735da
@ -67,18 +67,19 @@ func main() {
|
||||
initPlugins()
|
||||
listenDaemonSettings()
|
||||
|
||||
loader.Start()
|
||||
defer loader.Stop()
|
||||
|
||||
go func() {
|
||||
if err := dbus.Wait(); err != nil {
|
||||
logger.Errorf("Lost dbus: %v", err)
|
||||
os.Exit(-1)
|
||||
} else {
|
||||
logger.Info("dbus connection is closed by user")
|
||||
os.Exit(0)
|
||||
}
|
||||
}()
|
||||
|
||||
loader.Start()
|
||||
defer loader.Stop()
|
||||
|
||||
ddeSessionRegister()
|
||||
dbus.DealWithUnhandledMessage()
|
||||
glib.StartLoop()
|
||||
|
@ -207,7 +207,7 @@ func (m *Manager) getDeviceIndex(devs []*device, path dbus.ObjectPath) int {
|
||||
}
|
||||
|
||||
func (m *Manager) IsDeviceEnabled(devPath dbus.ObjectPath) (enabled bool, err error) {
|
||||
enabled = m.switchHandler.isDeviceEnabled(devPath)
|
||||
enabled = m.config.getDeviceEnabled(devPath)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -310,10 +310,6 @@ func (sh *switchHandler) saveAndDisconnectDevice(devPath dbus.ObjectPath) (err e
|
||||
return
|
||||
}
|
||||
|
||||
func (sh *switchHandler) isDeviceEnabled(devPath dbus.ObjectPath) (enabled bool) {
|
||||
return sh.config.getDeviceEnabled(devPath)
|
||||
}
|
||||
|
||||
func (sh *switchHandler) enableDevice(devPath dbus.ObjectPath, enabled bool) (err error) {
|
||||
if nmGetDeviceType(devPath) == NM_DEVICE_TYPE_WIFI {
|
||||
if !nmGetWirelessHardwareEnabled() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user