Skip to content

Commit

Permalink
Alias datamapper's each and [] method to protect concurrent sqlite3 a…
Browse files Browse the repository at this point in the history
…ccess

Change-Id: I436d8e1fb083ba5ba48c3759bcac485314ee115e
  • Loading branch information
anferneeg committed Nov 8, 2011
1 parent d24d761 commit 22d5194
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions base/lib/base/datamapper_l.rb
Expand Up @@ -83,6 +83,27 @@ def all(*args)
end
end

class Collection
alias original_each each
alias original_at []

def each(&block)
instances = []
LOCK.synchronize do
original_each do |instance|
instances << instance
end
end
instances.each &block
end

def [](*args)
LOCK.synchronize do
original_at(*args)
end
end
end

# For auto_upgrade!
module Migrations
module SingletonMethods
Expand Down

0 comments on commit 22d5194

Please sign in to comment.