Skip to content

Commit a21a037

Browse files
set default to 5 seconds
1 parent 606c157 commit a21a037

File tree

2 files changed

+2
-4
lines changed

2 files changed

+2
-4
lines changed

lib/closure_tree/support.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,10 @@ def initialize(model_class, options)
2323
:dependent => :nullify, # or :destroy or :delete_all -- see the README
2424
:name_column => 'name',
2525
:with_advisory_lock => true,
26-
:advisory_lock_timeout_seconds => nil,
26+
:advisory_lock_timeout_seconds => 5,
2727
:numeric_order => false
2828
}.merge(options)
2929
raise ArgumentError, "name_column can't be 'path'" if options[:name_column] == 'path'
30-
if !options[:with_advisory_lock] && options[:advisory_lock_timeout_seconds].present?
31-
raise ArgumentError, "advisory_lock_timeout_seconds cannot be provided when advisory lock is disabled"
32-
end
3330
if order_is_numeric?
3431
extend NumericOrderSupport.adapter_for_connection(connection)
3532
end

spec/closure_tree/parallel_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ def work
123123
it 'fails to deadlock while simultaneously deleting items from the same hierarchy' do
124124
target = User.find_or_create_by_path((1..200).to_a.map { |ea| ea.to_s })
125125
emails = target.self_and_ancestors.to_a.map(&:email).shuffle
126+
allow(User).to receive(:with_advisory_lock!).with(anything, timeout_seconds: nil) { |_lock_name, &block| block.call }
126127
Parallel.map(emails, :in_threads => max_threads) do |email|
127128
ActiveRecord::Base.connection_pool.with_connection do
128129
User.transaction do

0 commit comments

Comments
 (0)