[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