daemonizer 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -84,6 +84,8 @@ Usage
84
84
  log_file "log/daemonizer.log" #relative to Demfile
85
85
 
86
86
  handler MyBackgroundSolution::DaemonizerHandler
87
+
88
+ not_cow_friendly #disable Copy-On-Write friendly (enabled by default)
87
89
 
88
90
  #automatically-parsed option by daemonizer
89
91
  set_option :queue do |worker_id, worker_count|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/daemonizer.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{daemonizer}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Gleb Pomykalov"]
@@ -42,6 +42,7 @@ module Daemonizer
42
42
  @options[:pid_file] ||= "pid/#{@pool}.pid"
43
43
  @options[:handler] ||= nil
44
44
  @options[:handler_options] ||= {}
45
+ @options[:cow_friendly] = true if @options[:cow_friendly].nil?
45
46
  end
46
47
 
47
48
  def validate
@@ -62,7 +63,7 @@ module Daemonizer
62
63
  end
63
64
  end
64
65
 
65
- [:engine, :workers, :poll_period, :root].each do |method|
66
+ [:engine, :workers, :poll_period, :root, :cow_friendly].each do |method|
66
67
  define_method method do
67
68
  @options[method.to_sym]
68
69
  end
@@ -24,7 +24,11 @@ class Daemonizer::Dsl
24
24
  raise DslError, "you should supply block or value to :set_option"
25
25
  end
26
26
  end
27
-
27
+
28
+ def not_cow_friendly
29
+ @options[:cow_friendly] = false
30
+ end
31
+
28
32
  def handler(handler)
29
33
  @options[:handler] = handler
30
34
  end
@@ -26,6 +26,14 @@ module Daemonizer
26
26
  end
27
27
 
28
28
  begin
29
+ if @config.cow_friendly
30
+ if GC.respond_to?(:copy_on_write_friendly=)
31
+ GC.copy_on_write_friendly = true
32
+ logger.info "Enabling COW-friendly feature"
33
+ else
34
+ logger.info "COW-friendly feature is not supported by currently used ruby version"
35
+ end
36
+ end
29
37
  @config.handler.logger = logger
30
38
  @config.handler.before_init(init_block)
31
39
  rescue Exception => e
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daemonizer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
9
+ - 3
10
+ version: 0.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gleb Pomykalov