10x

BTW: why the "threaded" is the default mode rather than the "forking" mode?

On Tuesday, October 9, 2012 1:11:47 PM UTC+2, Tomer Filiba wrote:
>
> use the forking server instead of the threaded server.
> threads and signals don't mix too well together in python, so the 
> interpreter blocks it.
>
>
> -----------------------------------------------------------------
>     
> *Tomer Filiba* 
> tomerfiliba.com     <http://www.facebook.com/tomerfiliba>    
> <http://il.linkedin.com/in/tomerfiliba> 
>
>
>
> On Tue, Oct 9, 2012 at 1:08 PM, shay berman <[email protected]<javascript:>
> > wrote:
>
>> Hi
>>
>> How to use signal.signal function via rpyc?
>> When I use it fail with error : ''signal only works in main thread"
>>
>> here is an example : 
>>
>> *------------------------------------------*
>> *import rpyc*
>> *r = rpyc.classic.connect('remote_host')*
>> *r_signal = r.modules.signal*
>> *r_signal.signal(r_signal.SIGCHLD, r_signal.SIG_DFL)
>> *
>> *
>> ---------------------------------------------------------------------------
>> *
>> *ValueError                                Traceback (most recent call 
>> last)*
>> */home/bshay/git/hostattachment/_meta/tests/xavi/hak_xavi_tests/tests_pool/<ipython
>>  
>> console> in <module>()*
>> */var/tmp/xavi-xpyv/lib/python2.7/site-packages/rpyc-3.0.7-py2.7.egg/rpyc/core/netref.pyc
>>  
>> in __call__(_self, *args, **kwargs)*
>> *    121         def __call__(_self, *args, **kwargs):*
>> *    122             kwargs = tuple(kwargs.items())*
>> *--> 123             return syncreq(_self, consts.HANDLE_CALL, args, 
>> kwargs)*
>> *    124         __call__.__doc__ = doc*
>> *    125         return __call__*
>> *
>> *
>> */var/tmp/xavi-xpyv/lib/python2.7/site-packages/rpyc-3.0.7-py2.7.egg/rpyc/core/netref.pyc
>>  
>> in syncreq(proxy, handler, *args)*
>> *     43     conn = object.__getattribute__(proxy, "____conn__")*
>> *     44     oid = object.__getattribute__(proxy, "____oid__")*
>> *---> 45     return conn().sync_request(handler, oid, *args)*
>> *     46 *
>> *     47 def asyncreq(proxy, handler, *args):*
>> *
>> *
>> */var/tmp/xavi-xpyv/lib/python2.7/site-packages/rpyc-3.0.7-py2.7.egg/rpyc/core/protocol.pyc
>>  
>> in sync_request(self, handler, *args)*
>> *    340         isexc, obj = self._sync_replies.pop(seq)*
>> *    341         if isexc:*
>> *--> 342             raise obj*
>> *    343         else:*
>> *    344             return obj*
>> *
>> *
>> *ValueError: signal only works in main thread*
>> *
>> *
>> *
>> *
>>
>
>

Reply via email to