summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/util/settings.rb8
-rwxr-xr-xspec/unit/util/settings.rb20
2 files changed, 24 insertions, 4 deletions
diff --git a/lib/puppet/util/settings.rb b/lib/puppet/util/settings.rb
index b2563e996..82d2d4533 100644
--- a/lib/puppet/util/settings.rb
+++ b/lib/puppet/util/settings.rb
@@ -308,13 +308,13 @@ class Puppet::Util::Settings
def parse
raise "No :config setting defined; cannot parse unknown config file" unless self[:config]
- # Create a timer so that this file will get checked automatically
- # and reparsed if necessary.
- set_filetimeout_timer()
-
@sync.synchronize do
unsafe_parse(self[:config])
end
+
+ # Create a timer so that this file will get checked automatically
+ # and reparsed if necessary.
+ set_filetimeout_timer()
end
# Unsafely parse the file -- this isn't thread-safe and causes plenty of problems if used directly.
diff --git a/spec/unit/util/settings.rb b/spec/unit/util/settings.rb
index 24bd04b27..bf0776fc8 100755
--- a/spec/unit/util/settings.rb
+++ b/spec/unit/util/settings.rb
@@ -512,6 +512,26 @@ describe Puppet::Util::Settings do
@settings.parse
@settings[:myarg].should == ""
end
+
+ describe "and when reading a non-positive filetimeout value from the config file" do
+ before do
+ @settings.setdefaults :foo, :filetimeout => [5, "eh"]
+
+ somefile = "/some/file"
+ text = "[main]
+ filetimeout = -1
+ "
+ File.expects(:read).with(somefile).returns(text)
+ @settings[:config] = somefile
+ end
+
+ it "should not set a timer" do
+ EventLoop::Timer.expects(:new).never
+
+ @settings.parse
+ puts "2", @settings[:filetimeout]
+ end
+ end
end
describe "when reparsing its configuration" do