Quantcast
Channel: R.NET
Viewing all articles
Browse latest Browse all 1634

Commented Feature: Support usage of R.NET from multiple App Domains [92]

$
0
0
One problem that comes up for us quite a bit when using R.NET from the RProvider is that we need to load it into multiple appdomains simultaneously. The native R.DLL is obviously AppDomain agnostic, but the R.NET instances are completely isolated.

The concrete problem is that in the second appdomain, the R.DLL fails during initialization because it is already initialized.

Any ideas on how we could make that work? Seems like R.DLL instances would have to be managed through some native code, or we would need some process-wide flag to record the fact that R.DLL has already been initialized.

Basically this is the same issue as the multiple-initialization problem.
Comments: Here's my fork: https://rdotnet.codeplex.com/SourceControl/network/forks/skyguy94/rdotnet The goal is to host the REngine as a WCF service. It is very much an in-progress development. The feature I am developing has a target date of mid-August, so it will be functional by then. Right now the REngine loads and evaluates code. There's plenty of issues with fetching the internals of vectors and matrices that make it unusable. Breaking Changes: I've reworked every class to push the pointer arithmetic to the "other side" of the WCF service boundary. As such, everything is broken. I removed the dynamic code. Its not important to me, and I didn't want to think about it. I did care for the extension methods or the "fluent" interface, so those are gone. There were enough changes that fixing the fluent calls would have been work I didn't want to do. I merged R.Net Graphics into the WCF Server. I'm also providing Bitmap and Svg renderers for the output of the server side. This is still broken. A bunch of other smaller, but opinionated things that I don't remember.

Viewing all articles
Browse latest Browse all 1634

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>