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
-~----------~----~----~----~------~----~------~--~---

Reply via email to