Roberto,
On 28.02.2013 16:22, Roberto De Ioris wrote:
the plugin is already in good shape but now i would like to add
multi-domains support (currently you can load multiple applications but
all in the same mono domain)
ApplicationHost.CreateApplicationHost is already creating its
own app domain.
I did not test your code, but it looks like you don't take
this into account. All icalls seem to allocate objects from
the main app domain, but you're expected to allocate them
in the current domain (see mono_domain_get ()).
Absolutely, i was sure i need to manually manage domains.
So, when i create a new ApplicationHost with
ApplicationHost.CreateApplicationHost
i am effectively creating a new domain and when i call
HttpRuntime.ProcessRequest
i am effectively moving to the corresponding domain.
The domain is automatically switched at this line:
https://github.com/unbit/uwsgi/blob/master/plugins/mono/uwsgi.cs#L130
"appHost" is actually a proxy of the real object.
If it is right how i need to register my pthreads in the multi-domain
system ? Currently (as you have noted) i attach pthreads (to the main
domain) when they start.
Your code is alright as it is, because you don't need to attach
threads to a specific domain.
mono_thread_attach (mono_domain_get());
is sufficient.
As a rule of thumb, whenever the Mono API is expecting a
domain argument, mono_domain_get () is almost always right.
Robert
_______________________________________________
Mono-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list