But in that case, the rogue thread keeps right on running. I have a test case put together across threads instead of AppDomains. It is behaving as I would expect, the maintenance thread keeps running and the SF.Dispose() is never called. I'll have a patch shortly.
On Oct 24, 3:11 pm, "Ayende Rahien" <[EMAIL PROTECTED]> wrote: > Shutdown the process, so yes > > On Fri, Oct 24, 2008 at 8:56 PM, Brian Rumschlag <[EMAIL PROTECTED]>wrote: > > > > > Does closing a WinForm shutdown it's AppDomain? > > > On Oct 24, 2:50 pm, "Ayende Rahien" <[EMAIL PROTECTED]> wrote: > > > Shutting an appdomain would kill all threads that execute code in that > > app > > > domain > > > > On Fri, Oct 24, 2008 at 8:33 PM, Brian Rumschlag <[EMAIL PROTECTED] > > >wrote: > > > > > The patch was simple, but the Unit Test is giving me fits. > > > > > I have a Mock CacheProvider working, that when it starts it spits off > > > > a thread waiting for some signal to stop. > > > > > The Test then fires off another AppDomain to initialize the IoC > > > > Container, and start the Unit of Work. > > > > > Unfortunately, when that call comes back, and the new AppDomain is > > > > unloaded, the thread which should keep right on going, stops. > > > > Also, the static variables I have to check the status of the > > > > CacheProvider aren't the same inside of the new AppDomain. > > > > > I'm confused. > > > > > On Oct 24, 11:19 am, Jason Meckley <[EMAIL PROTECTED]> wrote: > > > > > should be as simple as updating 3 files: > > > > > > IUnitOfWorkFactory to > > > > > public interface IUnitOfWorkFactory : IDisposable > > > > > > then implement the members here: > > > > > ActiveRecordUnitOfWorkFactory (empty member) > > > > > NHibernateUnitOfWorkFactory (call sessFactory.Dispose()) > > > > > > build, create patch, submit, done:) > > > > > > On Oct 24, 10:43 am, "Ayende Rahien" <[EMAIL PROTECTED]> wrote: > > > > > > > Please sumbit a patch with this > > > > > > > On Fri, Oct 24, 2008 at 4:42 PM, Brian Rumschlag < > > [EMAIL PROTECTED] > > > > >wrote: > > > > > > > > The problem is that the maintenance thread in the memcache client > > is > > > > > > > preventing an implicit Dispose() of the SF > > > > > > > I added an explicit dispose method to IUnitOfWorkFactory, called > > it > > > > at > > > > > > > the end of application, and everything shut down properly. > > > > > > > I'll try making the interface implement IDisposable instead. > > > > > > > > On Oct 24, 10:16 am, "Ayende Rahien" <[EMAIL PROTECTED]> wrote: > > > > > > > > I don't think we call SF.Close(); > > > > > > > > We just the the app domain shut down clean up all our > > resources. > > > > > > > > > On Fri, Oct 24, 2008 at 3:47 PM, Jason Meckley < > > > > [EMAIL PROTECTED] > > > > > > > >wrote: > > > > > > > > > > SessionFactory.Dispose() isn't called explicitly. not from > > what I > > > > can > > > > > > > > > see. I would assume this is done in > > NHibernateUnitOfWorkFactory > > > > which > > > > > > > > > holds the instance of the factory. but IUnitOfWorkFactory > > does > > > > not > > > > > > > > > implement IDisposable. > > > > > > > > > > when the application ends the object is gone (for lack of a > > > > better > > > > > > > > > term). I would assume that when IoC.Rest() is called this > > > > disposes > > > > > > > > > the windsor container, which in tern disposes components, > > etc. > > > > if > > > > > > > > > that's the case then we may be able to update > > IUnitOfWorkFactory > > > > to > > > > > > > > > inherit IDisposable. then set sessionFactory.Dispose() int > > the > > > > > > > > > concrete member. > > > > > > > > > > Thoughts? > > > > > > > > > > On Oct 24, 9:17 am, Brian Rumschlag <[EMAIL PROTECTED]> > > wrote: > > > > > > > > > > I have an application that is using memcached as it's > > > > second-level > > > > > > > > > > cache. > > > > > > > > > > > The MemCached library has a maintenance thread that runs > > until > > > > the > > > > > > > > > > caching system is destroyed by CacheProvider.Stop(), which > > is > > > > called > > > > > > > > > > by SessionFactory.Close. > > > > > > > > > > > SessionFactory.Close is called by SessionFactory.Dispose(), > > but > > > > that > > > > > > > > > > doesn't seem to be getting called either. > > > > > > > > > > > Obviously, you wouldn't want to close the SessionFactory > > when > > > > the > > > > > > > > > > UnitOfWork was disposed, but I can't find where in > > > > > > > > > > Rhino.Commons.NHibernate SessionFactory.Close is called. > > > > > > > > > > > Any thoughts? > > > > > > > > > > Brian Rumschlag --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en -~----------~----~----~----~------~----~------~--~---
