Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[usb-moded] Move synchronous mode switch to worker thread. Fixes JB#4…
…2757

Mode switching in usb-moded is done via synchronous ipc / otherwise
blocking operations - which makes usb-moded mainloop unable to process
for example udev events / dbus requests from clients during the swich
and causes potentially stale events to be seen after the mode switch.

Separate mode selection from mode activation so that the latter is
executed from worker thread.

Distribute existing code in manner that makes the selection vs activation,
or mainloop / worker thread separation more apparent:
- control.c: Mode selection logic
- worker.c:  Mode activation logic

And move miscellaneous functions that have accumulated into the main
usb-moded module to:

- common.c:  Generic helper functions
- sigpipe.c: Asynchronous signal trapping

Rename all moved functions so that they still have prefix indicating the
containing module.

Refuse synchronous sleeps in order to terminate ongoing mode switch
if udev events / other inputs invalidate the target of transition.

Signed-off-by: Simo Piiroinen <simo.piiroinen@jollamobile.com>
  • Loading branch information
spiiroin committed Sep 5, 2018
1 parent dd58713 commit 57d404a
Show file tree
Hide file tree
Showing 23 changed files with 2,448 additions and 1,507 deletions.
162 changes: 162 additions & 0 deletions .depend
Expand Up @@ -72,38 +72,71 @@ src/usb_moded-appsync.pic.o:\
src/usb_moded-modesetting.h\
src/usb_moded-systemd.h\

src/usb_moded-common.o:\
src/usb_moded-common.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
src/usb_moded.h\

src/usb_moded-common.pic.o:\
src/usb_moded-common.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
src/usb_moded.h\

src/usb_moded-config.o:\
src/usb_moded-config.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
src/usb_moded-modesetting.h\
src/usb_moded-ssu.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-config.pic.o:\
src/usb_moded-config.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
src/usb_moded-modesetting.h\
src/usb_moded-ssu.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-configfs.o:\
src/usb_moded-configfs.c\
config-static.h\
src/usb_moded-android.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-configfs.h\
Expand All @@ -117,6 +150,7 @@ src/usb_moded-configfs.pic.o:\
src/usb_moded-configfs.c\
config-static.h\
src/usb_moded-android.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-configfs.h\
Expand All @@ -126,11 +160,45 @@ src/usb_moded-configfs.pic.o:\
src/usb_moded-modesetting.h\
src/usb_moded.h\

src/usb_moded-control.o:\
src/usb_moded-control.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-control.pic.o:\
src/usb_moded-control.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-dbus.o:\
src/usb_moded-dbus.c\
config-static.h\
src/usb_moded-appsync-dbus-private.h\
src/usb_moded-appsync-dbus.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
Expand All @@ -143,8 +211,12 @@ src/usb_moded-dbus.o:\
src/usb_moded-dbus.pic.o:\
src/usb_moded-dbus.c\
config-static.h\
src/usb_moded-appsync-dbus-private.h\
src/usb_moded-appsync-dbus.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
Expand All @@ -157,7 +229,10 @@ src/usb_moded-dbus.pic.o:\
src/usb_moded-devicelock.o:\
src/usb_moded-devicelock.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-devicelock.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
Expand All @@ -167,7 +242,10 @@ src/usb_moded-devicelock.o:\
src/usb_moded-devicelock.pic.o:\
src/usb_moded-devicelock.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-devicelock.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
Expand All @@ -177,7 +255,10 @@ src/usb_moded-devicelock.pic.o:\
src/usb_moded-dsme.o:\
src/usb_moded-dsme.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dsme.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
Expand All @@ -187,7 +268,10 @@ src/usb_moded-dsme.o:\
src/usb_moded-dsme.pic.o:\
src/usb_moded-dsme.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dsme.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
Expand Down Expand Up @@ -227,6 +311,7 @@ src/usb_moded-modesetting.o:\
config-static.h\
src/usb_moded-android.h\
src/usb_moded-appsync.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-configfs.h\
Expand All @@ -238,13 +323,15 @@ src/usb_moded-modesetting.o:\
src/usb_moded-modesetting.h\
src/usb_moded-modules.h\
src/usb_moded-network.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-modesetting.pic.o:\
src/usb_moded-modesetting.c\
config-static.h\
src/usb_moded-android.h\
src/usb_moded-appsync.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-configfs.h\
Expand All @@ -256,6 +343,7 @@ src/usb_moded-modesetting.pic.o:\
src/usb_moded-modesetting.h\
src/usb_moded-modules.h\
src/usb_moded-network.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-modules.o:\
Expand Down Expand Up @@ -287,23 +375,45 @@ src/usb_moded-modules.pic.o:\
src/usb_moded-network.o:\
src/usb_moded-network.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modesetting.h\
src/usb_moded-network.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-network.pic.o:\
src/usb_moded-network.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modesetting.h\
src/usb_moded-network.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-sigpipe.o:\
src/usb_moded-sigpipe.c\
config-static.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-sigpipe.h\
src/usb_moded.h\

src/usb_moded-sigpipe.pic.o:\
src/usb_moded-sigpipe.c\
config-static.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-sigpipe.h\
src/usb_moded.h\

src/usb_moded-ssu.o:\
Expand Down Expand Up @@ -339,8 +449,10 @@ src/usb_moded-systemd.pic.o:\
src/usb_moded-trigger.o:\
src/usb_moded-trigger.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-devicelock.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
Expand All @@ -352,8 +464,10 @@ src/usb_moded-trigger.o:\
src/usb_moded-trigger.pic.o:\
src/usb_moded-trigger.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-devicelock.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
Expand All @@ -365,8 +479,12 @@ src/usb_moded-trigger.pic.o:\
src/usb_moded-udev.o:\
src/usb_moded-udev.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
Expand All @@ -376,8 +494,12 @@ src/usb_moded-udev.o:\
src/usb_moded-udev.pic.o:\
src/usb_moded-udev.c\
config-static.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
Expand All @@ -386,20 +508,54 @@ src/usb_moded-udev.pic.o:\

src/usb_moded-util.o:\
src/usb_moded-util.c\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\

src/usb_moded-util.pic.o:\
src/usb_moded-util.c\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\

src/usb_moded-worker.o:\
src/usb_moded-worker.c\
config-static.h\
src/usb_moded-android.h\
src/usb_moded-common.h\
src/usb_moded-configfs.h\
src/usb_moded-control.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
src/usb_moded-modesetting.h\
src/usb_moded-modules.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded-worker.pic.o:\
src/usb_moded-worker.c\
config-static.h\
src/usb_moded-android.h\
src/usb_moded-common.h\
src/usb_moded-configfs.h\
src/usb_moded-control.h\
src/usb_moded-dyn-config.h\
src/usb_moded-log.h\
src/usb_moded-modes.h\
src/usb_moded-modesetting.h\
src/usb_moded-modules.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded.o:\
src/usb_moded.c\
config-static.h\
src/usb_moded-android.h\
src/usb_moded-appsync.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-configfs.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-devicelock.h\
Expand All @@ -411,19 +567,23 @@ src/usb_moded.o:\
src/usb_moded-modesetting.h\
src/usb_moded-modules.h\
src/usb_moded-network.h\
src/usb_moded-sigpipe.h\
src/usb_moded-systemd.h\
src/usb_moded-trigger.h\
src/usb_moded-udev.h\
src/usb_moded-worker.h\
src/usb_moded.h\

src/usb_moded.pic.o:\
src/usb_moded.c\
config-static.h\
src/usb_moded-android.h\
src/usb_moded-appsync.h\
src/usb_moded-common.h\
src/usb_moded-config-private.h\
src/usb_moded-config.h\
src/usb_moded-configfs.h\
src/usb_moded-control.h\
src/usb_moded-dbus-private.h\
src/usb_moded-dbus.h\
src/usb_moded-devicelock.h\
Expand All @@ -435,9 +595,11 @@ src/usb_moded.pic.o:\
src/usb_moded-modesetting.h\
src/usb_moded-modules.h\
src/usb_moded-network.h\
src/usb_moded-sigpipe.h\
src/usb_moded-systemd.h\
src/usb_moded-trigger.h\
src/usb_moded-udev.h\
src/usb_moded-worker.h\
src/usb_moded.h\

utils/udev-search.o:\
Expand Down

0 comments on commit 57d404a

Please sign in to comment.