> Yeah, I'm not really sure how this is supposed to work. load_mono()
> ensures that mono is loaded, so mono_handle should be set if it
> succeeds. Unless someone calls CorExitProcess in another thread and
> unloads it before we can grab the critical section again.
>
> Maybe load_mono should return without releasing the critical section,
> thus preventing that race? The caller will almost always want to
> proceed to create an AppDomain afterwards..

Ah, I see, you really did mean that.  No, I don't think leaving the
critical section open is the best thing.  I expect someone calling
CorExitProcess should expect problems if they continue to call mscoree
functions after that.
--Juan


Reply via email to