[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819
Michael 'Mickey' Lauer
mickey at vanille-media.de
Sat Aug 6 08:19:14 UTC 2011
The following commit has been merged in the debian branch:
commit d34ab22948344014bc4bafeb7a9e73fdf81e695d
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Wed Feb 17 17:45:35 2010 +0100
frameworkd: add new command line option -n / --noframework to not start the special framework subsystem
This is necessary, if you want to run several frameworkd processes with different sets of subsystems in parallel
diff --git a/framework/controller.py b/framework/controller.py
index ed02ea2..ecd6251 100644
--- a/framework/controller.py
+++ b/framework/controller.py
@@ -2,7 +2,7 @@
"""
freesmartphone.org Framework Daemon
-(C) 2008-2009 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+(C) 2008-2010 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
(C) 2008-2009 Openmoko, Inc.
GPLv2 or later
@@ -58,7 +58,7 @@ class Controller( daemon.Daemon ):
self.bus = dbus.SystemBus()
# check if there's already something owning our bus name org.freesmartphone.frameworkd
- if "%s.frameworkd" % DBUS_BUS_NAME_PREFIX in self.bus.list_names():
+ if ( not self.options.values.noframework ) and ( "%s.frameworkd" % DBUS_BUS_NAME_PREFIX in self.bus.list_names() ):
logger.error( "dbus bus name org.freesmartphone.frameworkd already claimed. Exiting." )
sys.exit( -1 )
@@ -76,8 +76,10 @@ class Controller( daemon.Daemon ):
self._configureLoggers()
self._handleOverrides()
- self._subsystems["frameworkd"] = subsystem.Framework( self.bus, path, scantype, self )
- Controller.objects.update( self._subsystems["frameworkd"].objects() )
+ # launch special framework subsystem
+ if ( not self.options.values.noframework ):
+ self._subsystems["frameworkd"] = subsystem.Framework( self.bus, path, scantype, self )
+ Controller.objects.update( self._subsystems["frameworkd"].objects() )
systemstolaunch = self.options.values.subsystems.split( ',' )
@@ -111,7 +113,7 @@ class Controller( daemon.Daemon ):
Controller.objects.update( self._subsystems[s].objects() )
# do we have any subsystems left?
- if len( self._subsystems ) == 1: # no additional subsystems could be loaded
+ if len( self._subsystems ) <= 1: # no additional subsystems could be loaded
logger.error( "can't launch without at least one subsystem. Exiting." )
sys.exit( -1 )
diff --git a/framework/frameworkd b/framework/frameworkd
index 212af1f..43075a0 100755
--- a/framework/frameworkd
+++ b/framework/frameworkd
@@ -2,13 +2,13 @@
"""
The Open Device Daemon - Python Implementation
-(C) 2008-2009 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+(C) 2008-2010 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
(C) 2008 Openmoko, Inc.
GPLv2 or later
"""
-__version__ = "1.3.0"
+__version__ = "1.3.1"
import sys, os
from optparse import OptionParser
@@ -29,9 +29,14 @@ class TheOptionParser( OptionParser ):
metavar = "system1,system2,system3,...",
dest = "subsystems",
default = "",
- help = "launch following subsystems (default=all)",
+ help = "launch only the following subsystems (default=all)",
action = "store",
)
+ self.add_option( "-n", "--noframework",
+ dest = "noframework",
+ help = "do not launch the framework subsystem (use for multiple framework processes)",
+ action = "store_true",
+ )
self.add_option( "-d", "--daemonize",
dest = "daemonize",
help = "launch as daemon",
diff --git a/framework/patterns/asyncworker.py b/framework/patterns/asyncworker.py
index 3e9087f..0de3df6 100644
--- a/framework/patterns/asyncworker.py
+++ b/framework/patterns/asyncworker.py
@@ -65,8 +65,10 @@ class AsyncWorker( object ):
restart = self._queue.empty() # should we wrap this in a mutex to play thread-safe?
self._queue.put( element )
if restart:
- logger.debug( "no elements in queue: starting idle task." )
- self._source = gobject.idle_add( self._processElement )
+ logger.debug( "no elements in queue: starting idle task." )
+ self._source = gobject.idle_add( self._processElement )
+ else:
+ logger.debug( "queue already filled (%s). idle task should still be running (source=%d)..." % ( self._queue.queue, self._source ) )
def remove( self, *element ):
"""
diff --git a/framework/subsystems/oeventsd/oevents.py b/framework/subsystems/oeventsd/oevents.py
index 5ad6624..aeb912c 100644
--- a/framework/subsystems/oeventsd/oevents.py
+++ b/framework/subsystems/oeventsd/oevents.py
@@ -95,6 +95,18 @@ class EventsManager(dbus.service.Object):
return False
+ @dbus.service.method( "org.freesmartphone.Events" )
+ def DebugListRules( self, name ):
+ return repr(self.rules)
+
+ for rule in self.rules:
+ trigger = rule._Rule__trigger
+ if isinstance( trigger, TestTrigger ) and trigger.name == name:
+ if value:
+ trigger._trigger()
+ else:
+ trigger._untrigger()
+
@dbus.service.method( "org.freesmartphone.Events" , in_signature='sb' )
def TriggerTest( self, name, value = True ):
"""Trigger or untrigger all the 'Test' triggers with matching names
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list