From 8e991900c97a3e2d9eb4ef1f3d61441c669f4da5 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Fri, 21 Sep 2012 15:20:43 -0700 Subject: [PATCH] Fix minor thread-safety issue on non-GVL ruby in Database#schema --- lib/sequel/database/query.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/sequel/database/query.rb b/lib/sequel/database/query.rb index fefc6520e4..4c4bf79d00 100644 --- a/lib/sequel/database/query.rb +++ b/lib/sequel/database/query.rb @@ -195,7 +195,9 @@ def schema(table, opts={}) opts[:schema] = sch if sch && !opts.include?(:schema) Sequel.synchronize{@schemas.delete(quoted_name)} if opts[:reload] - return Sequel.synchronize{@schemas[quoted_name]} if @schemas[quoted_name] + if v = Sequel.synchronize{@schemas[quoted_name]} + return v + end cols = schema_parse_table(table_name, opts) raise(Error, 'schema parsing returned no columns, table probably doesn\'t exist') if cols.nil? || cols.empty?