From 74be86395b9ec44a4cbbb5dec618dd314b6b046a Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 16:33:44 -0700 Subject: [PATCH] Changing env back to development mode, the memory leak is likely fixed --- config/thin.yml | 2 +- lib/mongo_mapper/clear_dev_memory.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 lib/mongo_mapper/clear_dev_memory.rb diff --git a/config/thin.yml b/config/thin.yml index f60fed103..eb066d83e 100644 --- a/config/thin.yml +++ b/config/thin.yml @@ -7,7 +7,7 @@ max_conns: 1024 require: [] max_persistent_conns: 512 -environment: production +environment: development servers: 1 daemonize: true #chdir: /usr/applications/localhash/current diff --git a/lib/mongo_mapper/clear_dev_memory.rb b/lib/mongo_mapper/clear_dev_memory.rb new file mode 100644 index 000000000..1a1db3b02 --- /dev/null +++ b/lib/mongo_mapper/clear_dev_memory.rb @@ -0,0 +1,19 @@ +module MongoMapper + class PerRequestMapClear + def initialize(app) + @app = app + end + + def call(env) + if Rails.configuration.cache_classes + else + MongoMapper::Document.descendants.each do |m| + m.descendants.clear if m.respond_to? :descendants + end + MongoMapper::Document.descendants.clear + MongoMapper::EmbeddedDocument.descendants.clear + end + @app.call(env) + end + end +end