[Groonga-commit] groonga/groonga at bae1a84 [master] mrb: add Context.open_temporary

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Aug 30 18:30:47 JST 2016


Kouhei Sutou	2016-08-30 18:30:47 +0900 (Tue, 30 Aug 2016)

  New Revision: bae1a8481401c88e5aa7946e9ebba66d6b30e9a8
  https://github.com/groonga/groonga/commit/bae1a8481401c88e5aa7946e9ebba66d6b30e9a8

  Message:
    mrb: add Context.open_temporary
    
    It's useful to open object temporary to reduce resource.

  Modified files:
    lib/mrb/scripts/context.rb

  Modified: lib/mrb/scripts/context.rb (+19 -0)
===================================================================
--- lib/mrb/scripts/context.rb    2016-08-30 18:14:57 +0900 (3d1282d)
+++ lib/mrb/scripts/context.rb    2016-08-30 18:30:47 +0900 (97ba3f2)
@@ -48,6 +48,25 @@ module Groonga
       end
     end
 
+    def open_temporary(id)
+      if Thread.limit == 1
+        need_close = opened?(id)
+      else
+        need_close = false
+      end
+      object = self[id]
+      begin
+        yield(object)
+      ensure
+        if need_close and !object.closed?
+          case object
+          when Table, Column
+            object.close
+          end
+        end
+      end
+    end
+
     private
     def set_error_raw(rc, error_level, message, backtrace)
       self.rc = rc.to_i
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index