@@ -56,13 +56,14 @@ def redis
56
56
# Call with a block to set the hook.
57
57
# Call with no arguments to return the hook.
58
58
def before_first_fork ( &block )
59
- block ? ( @before_first_fork = block ) : @before_first_fork
59
+ @before_first_fork ||= [ ]
60
+ block ? ( @before_first_fork << block ) : @before_first_fork
60
61
end
61
62
62
63
# Set a proc that will be called in the parent process before the
63
64
# worker forks for the first time.
64
- def before_first_fork = ( before_first_fork )
65
- @ before_first_fork = before_first_fork
65
+ def before_first_fork = ( block )
66
+ block ? ( before_first_fork << block ) : before_first_fork . clear
66
67
end
67
68
68
69
# The `before_fork` hook will be run in the **parent** process
@@ -72,12 +73,13 @@ def before_first_fork=(before_first_fork)
72
73
# Call with a block to set the hook.
73
74
# Call with no arguments to return the hook.
74
75
def before_fork ( &block )
75
- block ? ( @before_fork = block ) : @before_fork
76
+ @before_fork ||= [ ]
77
+ block ? ( @before_fork << block ) : @before_fork
76
78
end
77
79
78
80
# Set the before_fork proc.
79
- def before_fork = ( before_fork )
80
- @ before_fork = before_fork
81
+ def before_fork = ( block )
82
+ block ? ( before_fork << block ) : before_fork . clear
81
83
end
82
84
83
85
# The `after_fork` hook will be run in the child process and is passed
@@ -87,12 +89,13 @@ def before_fork=(before_fork)
87
89
# Call with a block to set the hook.
88
90
# Call with no arguments to return the hook.
89
91
def after_fork ( &block )
90
- block ? ( @after_fork = block ) : @after_fork
92
+ @after_fork ||= [ ]
93
+ block ? ( @after_fork << block ) : @after_fork
91
94
end
92
95
93
96
# Set the after_fork proc.
94
- def after_fork = ( after_fork )
95
- @ after_fork = after_fork
97
+ def after_fork = ( block )
98
+ block ? ( after_fork << block ) : after_fork . clear
96
99
end
97
100
98
101
def to_s
0 commit comments