richard mendes wrote: > The question i have is how does rpy handle multithreads. > > What i've seen till now is that a r object is created when importing > the rpy library. how does this react to multithreads.
Those are fairly vague questions, so I'll answer the specifics: > Is that r object connected to one R session ? Yes. > Is there a way to create a new r object ? You can try! Doing 'from rpy import r' just runs rpy.py, and that defines a class 'R' and creates an object called 'r' of that class which is then imported into the caller. So you can try and make another by creating another instance: >>> import rpy >>> r2=rpy.R() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python25\Lib\site-packages\rpy.py", line 286, in __init__ _rpy.r_init(HAS_NUMERIC); RuntimeError: Only one R object may be instantiated per session So I guess that's a no. That error is coming from the C code, so I don't know how fundamental it is or how difficult it would be to make it work... > what happens to the r object if i just make a new object of the class > that calls the rpy library. Would that create a new R session ? Fraid not: >>> from rpy import r >>> r.assign('x',999) 999 >>> r.ls() 'x' >>> r2=r >>> r2.ls() 'x' it's the same session. > If someone knows the answers to these questions it would help me a > lot, and save me some time writing tests to find this out. So I think that definitely within a single thread there can be only one, and probably across multiple threads too. However if you use os.fork() you can get a new R session... Barry ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ rpy-list mailing list rpy-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rpy-list