Author: dmeyer
Date: Fri Oct 26 13:55:04 2007
New Revision: 2883
Log:
make rpc thread safe
Modified:
trunk/base/src/rpc.py
Modified: trunk/base/src/rpc.py
==============================================================================
--- trunk/base/src/rpc.py (original)
+++ trunk/base/src/rpc.py Fri Oct 26 13:55:04 2007
@@ -225,6 +225,12 @@
"""
Call the remote command and return InProgress.
"""
+ if not kaa.notifier.is_mainthread():
+ # create InProgress object and return
+ callback = kaa.notifier.InProgress()
+ kwargs['_kaa_rpc_callback'] = callback
+ kaa.notifier.MainThreadCallback(self.rpc)(cmd, *args, **kwargs)
+ return callback
if not self._wmon:
raise IOError('channel is disconnected')
seq = self._next_seq
@@ -233,7 +239,7 @@
payload = cPickle.dumps((cmd, args, kwargs), pickle.HIGHEST_PROTOCOL)
self._send_packet(seq, packet_type, payload)
# create InProgress object and return
- callback = kaa.notifier.InProgress()
+ callback = kwargs.pop('_kaa_rpc_callback', kaa.notifier.InProgress())
# callback with error handler
self._rpc_in_progress[seq] = callback
return callback
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog