[oe-commits] [bitbake] 02/05: event: Queue offline events for the UI

git at git.openembedded.org git at git.openembedded.org
Fri Jul 7 22:58:54 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

commit cb241fb8544dfb05646dbae1a1b04e17878a466c
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Fri Jul 7 15:41:41 2017 +0100

    event: Queue offline events for the UI
    
    Messages printed when no UI is connected (e.g. memres) are currently lost.
    Use the existing queue mechanism to queue these until a UI attaches, then
    replay them. This isn't ideal but better than the current situation of
    losing them entirely.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/event.py          | 11 ++++++++++-
 lib/bb/server/process.py |  2 +-
 lib/bb/server/xmlrpc.py  |  2 +-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/lib/bb/event.py b/lib/bb/event.py
index 1462382..d5c5ef3 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -212,6 +212,12 @@ def fire(event, d):
     if worker_fire:
         worker_fire(event, d)
     else:
+        # If messages have been queued up, clear the queue
+        global _uiready, ui_queue
+        if _uiready and ui_queue:
+            for queue_event in ui_queue:
+                fire_ui_handlers(queue_event, d)
+            ui_queue = []
         fire_ui_handlers(event, d)
 
 def fire_from_worker(event, d):
@@ -291,7 +297,10 @@ def register_UIHhandler(handler, mainui=False):
     _ui_logfilters[_ui_handler_seq] = UIEventFilter(level, debug_domains)
     return _ui_handler_seq
 
-def unregister_UIHhandler(handlerNum):
+def unregister_UIHhandler(handlerNum, mainui=False):
+    if mainui:
+        global _uiready
+        _uiready = False
     if handlerNum in _ui_handlers:
         del _ui_handlers[handlerNum]
     return
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index 9ca2b69..f8d6767 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -137,7 +137,7 @@ class ProcessServer(Process, BaseImplServer):
                 logger.exception('Running command %s', command)
 
         self.event_queue.close()
-        bb.event.unregister_UIHhandler(self.event_handle.value)
+        bb.event.unregister_UIHhandler(self.event_handle.value, True)
         self.command_channel.close()
         self.cooker.shutdown(True)
         self.quitout.close()
diff --git a/lib/bb/server/xmlrpc.py b/lib/bb/server/xmlrpc.py
index a06007f..d0f5a6d 100644
--- a/lib/bb/server/xmlrpc.py
+++ b/lib/bb/server/xmlrpc.py
@@ -125,7 +125,7 @@ class BitBakeServerCommands():
         """
         Unregister a remote UI Event Handler
         """
-        return bb.event.unregister_UIHhandler(handlerNum)
+        return bb.event.unregister_UIHhandler(handlerNum, True)
 
     def runCommand(self, command):
         """

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list