Fixing memory leak

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2011-09-06 15:50:11 -07:00
parent 1851ace79d
commit 09f9963502

View File

@@ -1,4 +1,5 @@
using NHibernate;
using System;
using NHibernate;
using NHibernate.Cfg;
using Orchard.Data.Providers;
using Orchard.Environment;
@@ -15,7 +16,8 @@ namespace Orchard.Data {
SessionFactoryParameters GetSessionFactoryParameters();
}
public class SessionFactoryHolder : ISessionFactoryHolder {
public class SessionFactoryHolder : ISessionFactoryHolder, IDisposable
{
private readonly ShellSettings _shellSettings;
private readonly ShellBlueprint _shellBlueprint;
private readonly IHostEnvironment _hostEnvironment;
@@ -47,6 +49,13 @@ namespace Orchard.Data {
public Localizer T { get; set; }
public ILogger Logger { get; set; }
public void Dispose() {
if (_sessionFactory != null) {
_sessionFactory.Dispose();
_sessionFactory = null;
}
}
public ISessionFactory GetSessionFactory() {
lock (this) {
if (_sessionFactory == null) {