daemonizer 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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