I uploaded another patch with the UnitTests. It's NHibernate.Dispose.UnitTests.patch
On Oct 24, 3:47 pm, Jason Meckley <[EMAIL PROTECTED]> wrote: > applied, thanks. > > On Oct 24, 3:26 pm, Brian Rumschlag <[EMAIL PROTECTED]> wrote: > > > Patch submitted.. > > NHibernate.Dispose.patch > > > On Oct 24, 3:16 pm, Brian Rumschlag <[EMAIL PROTECTED]> wrote: > > > > 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 -~----------~----~----~----~------~----~------~--~---
