because windows does not support forking -----------------------------------------------------------------
*Tomer Filiba* tomerfiliba.com <http://www.facebook.com/tomerfiliba> <http://il.linkedin.com/in/tomerfiliba> On Tue, Oct 9, 2012 at 2:14 PM, shay berman <[email protected]> wrote: > 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]> 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* >>> * >>> * >>> * >>> * >>> >> >>
