slyphon-zookeeper 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/CHANGELOG +6 -0
- data/README.markdown +3 -0
- data/Rakefile +68 -11
- data/ext/Rakefile +4 -0
- data/ext/generate_gvl_code.rb +26 -42
- data/ext/zkrb_wrapper.c +313 -499
- data/ext/zookeeper_lib.c +35 -16
- data/ext/zookeeper_lib.h +12 -5
- data/slyphon-zookeeper.gemspec +1 -1
- metadata +5 -5
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
v0.9.2 More efficient and simpler wrappers for GIL release
|
2
|
+
|
3
|
+
* After a code review by Andrew Wason (rectalogic), use a much simpler
|
4
|
+
technique for creating the arg structs and passing them to the
|
5
|
+
zkrb_gvl_* functions. No malloc(), no free(), no problem.
|
6
|
+
|
1
7
|
v0.9.1 see v0.8.4 notes, same patch
|
2
8
|
|
3
9
|
v0.9.0 RELEASE THE KRAK..er, GIL!!
|
data/README.markdown
CHANGED
@@ -7,6 +7,9 @@ such as locks, have a look at [ZK](https://github.com/slyphon/zk) (also
|
|
7
7
|
available is [ZK-EventMachine](https://github.com/slyphon/zk-eventmachine) for
|
8
8
|
those who prefer async).
|
9
9
|
|
10
|
+
Unfortunately, since this is a fork of twitter/zookeeper, we don't have our own
|
11
|
+
Issues tracker. Issues should be filed under [ZK](https://github.com/slyphon/zk/issues).
|
12
|
+
|
10
13
|
## License
|
11
14
|
|
12
15
|
Copyright 2008 Phillip Pearson, and 2010 Twitter, Inc. Licensed under the
|
data/Rakefile
CHANGED
@@ -1,29 +1,62 @@
|
|
1
1
|
# def gemset_name
|
2
2
|
# ENV.fetch('GEM_HOME').split('@').last
|
3
3
|
# end
|
4
|
-
|
4
|
+
|
5
|
+
GEM_FILES = FileList['slyphon-zookeeper-*.gem']
|
6
|
+
|
5
7
|
namespace :mb do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
8
|
+
namespace :gems do
|
9
|
+
task :build do
|
10
|
+
sh "rvm 1.8.7 do gem build slyphon-zookeeper.gemspec"
|
11
|
+
ENV['JAVA_GEM'] = '1'
|
12
|
+
sh "rvm 1.8.7 do gem build slyphon-zookeeper.gemspec"
|
13
|
+
end
|
14
|
+
|
15
|
+
task :push do
|
16
|
+
GEM_FILES.each do |gem|
|
17
|
+
sh "gem push #{gem}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
task :clean do
|
22
|
+
rm_rf GEM_FILES
|
23
|
+
end
|
24
|
+
|
25
|
+
task :all => [:build, :push, :clean]
|
10
26
|
end
|
11
27
|
end
|
12
28
|
|
13
29
|
gemset_name = 'zookeeper'
|
14
30
|
|
31
|
+
directory 'tmp'
|
32
|
+
|
33
|
+
# this nonsense w/ tmp and the Gemfile is a bundler optimization
|
34
|
+
|
35
|
+
GEMSPEC_LINK = 'tmp/slyphon-zookeeper.gemspec'
|
36
|
+
|
37
|
+
file GEMSPEC_LINK => 'tmp' do
|
38
|
+
ln_s '../slyphon-zookeeper.gemspec', GEMSPEC_LINK
|
39
|
+
end
|
15
40
|
|
16
|
-
%w[1.8.7 1.9.2 1.9.3
|
41
|
+
%w[1.8.7 1.9.2 jruby rbx 1.9.3].each do |ns_name|
|
17
42
|
rvm_ruby = (ns_name == 'rbx') ? "rbx-2.0.testing" : ns_name
|
18
43
|
|
19
44
|
ruby_with_gemset = "#{rvm_ruby}@#{gemset_name}"
|
20
45
|
|
21
46
|
create_gemset_name = "mb:#{ns_name}:create_gemset"
|
22
47
|
clobber_task_name = "mb:#{ns_name}:clobber"
|
48
|
+
clean_task_name = "mb:#{ns_name}:clean"
|
23
49
|
build_task_name = "mb:#{ns_name}:build"
|
24
50
|
bundle_task_name = "mb:#{ns_name}:bundle_install"
|
25
51
|
rspec_task_name = "mb:#{ns_name}:run_rspec"
|
26
52
|
|
53
|
+
phony_gemfile_link_name = File.expand_path("tmp/Gemfile.#{ns_name}")
|
54
|
+
|
55
|
+
file phony_gemfile_link_name => GEMSPEC_LINK do
|
56
|
+
# apparently, rake doesn't deal with symlinks intelligently :P
|
57
|
+
ln_s('../Gemfile', phony_gemfile_link_name) unless File.exists?(phony_gemfile_link_name)
|
58
|
+
end
|
59
|
+
|
27
60
|
task create_gemset_name do
|
28
61
|
sh "rvm #{rvm_ruby} do rvm gemset create #{gemset_name}"
|
29
62
|
end
|
@@ -36,7 +69,15 @@ gemset_name = 'zookeeper'
|
|
36
69
|
end
|
37
70
|
end
|
38
71
|
|
39
|
-
task
|
72
|
+
task clean_task_name do
|
73
|
+
unless rvm_ruby == 'jruby'
|
74
|
+
cd 'ext' do
|
75
|
+
sh "rake clean"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
task build_task_name => [create_gemset_name, clean_task_name] do
|
40
81
|
unless rvm_ruby == 'jruby'
|
41
82
|
cd 'ext' do
|
42
83
|
sh "rvm #{ruby_with_gemset} do rake build"
|
@@ -44,13 +85,12 @@ gemset_name = 'zookeeper'
|
|
44
85
|
end
|
45
86
|
end
|
46
87
|
|
47
|
-
task bundle_task_name => build_task_name do
|
48
|
-
|
49
|
-
sh "rvm #{ruby_with_gemset} do bundle install"
|
88
|
+
task bundle_task_name => [phony_gemfile_link_name, build_task_name] do
|
89
|
+
sh "rvm #{ruby_with_gemset} do bundle install --gemfile #{phony_gemfile_link_name}"
|
50
90
|
end
|
51
91
|
|
52
92
|
task rspec_task_name => bundle_task_name do
|
53
|
-
sh "rvm #{ruby_with_gemset} do bundle exec rspec spec --fail-fast"
|
93
|
+
sh "rvm #{ruby_with_gemset} do env BUNDLE_GEMFILE=#{phony_gemfile_link_name} bundle exec rspec spec --fail-fast"
|
54
94
|
end
|
55
95
|
|
56
96
|
task "mb:#{ns_name}" => rspec_task_name
|
@@ -58,6 +98,23 @@ gemset_name = 'zookeeper'
|
|
58
98
|
task "mb:test_all" => rspec_task_name
|
59
99
|
end
|
60
100
|
|
101
|
+
task :default => 'mb:1.9.3'
|
102
|
+
|
103
|
+
task :clean do
|
104
|
+
rm_rf 'tmp'
|
105
|
+
end
|
106
|
+
|
107
|
+
# cargo culted from http://blog.flavorjon.es/2009/06/easily-valgrind-gdb-your-ruby-c.html
|
108
|
+
VALGRIND_BASIC_OPTS = '--num-callers=50 --error-limit=no --partial-loads-ok=yes --undef-value-errors=no'
|
109
|
+
|
110
|
+
task 'valgrind' do
|
111
|
+
cd 'ext' do
|
112
|
+
sh "rake clean build"
|
113
|
+
end
|
114
|
+
|
115
|
+
sh "valgrind #{VALGRIND_BASIC_OPTS} bundle exec rspec spec"
|
116
|
+
end
|
117
|
+
|
61
118
|
namespace :build do
|
62
119
|
task :clean do
|
63
120
|
cd 'ext' do
|
data/ext/Rakefile
CHANGED
data/ext/generate_gvl_code.rb
CHANGED
@@ -35,29 +35,21 @@ we want
|
|
35
35
|
int valuelen, const struct ACL_vector *acl, int flags,
|
36
36
|
string_completion_t completion, const void *data) {
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
rc = ptr->rc;
|
55
|
-
free(ptr);
|
56
|
-
return rc;
|
57
|
-
|
58
|
-
error:
|
59
|
-
free(ptr);
|
60
|
-
return -1;
|
38
|
+
zkrb_zoo_acreate_args_t args = {
|
39
|
+
.rc = ZKRB_FAIL,
|
40
|
+
.zh = zh,
|
41
|
+
.path = path,
|
42
|
+
.value = value,
|
43
|
+
.valuelen = valuelen,
|
44
|
+
.acl = acl,
|
45
|
+
.flags = flags,
|
46
|
+
.completion = completion,
|
47
|
+
.data = data
|
48
|
+
};
|
49
|
+
|
50
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_acreate, (void *)&args);
|
51
|
+
|
52
|
+
return args.rc;
|
61
53
|
}
|
62
54
|
|
63
55
|
=end
|
@@ -156,43 +148,35 @@ class CallingFunction
|
|
156
148
|
@fn_signature ||= "int #{name}(#{typed_args.join(', ')})"
|
157
149
|
end
|
158
150
|
|
159
|
-
def
|
160
|
-
@
|
161
|
-
lines = ["ptr->rc = rc;"]
|
162
|
-
lines += member_names.map { |n| "ptr->#{n} = #{n};" }
|
163
|
-
lines.map! { |n| " #{n}" }
|
164
|
-
lines.join("\n")
|
165
|
-
)
|
151
|
+
def initializer_lines
|
152
|
+
@initializer_lines ||= member_names.map { |n| " .#{n} = #{n}" }.join(",\n")
|
166
153
|
end
|
167
154
|
|
168
155
|
def top
|
169
156
|
<<-EOS
|
170
157
|
// wrapper that calls #{zoo_fn_name} via #{wrapper_fn.name} inside rb_thread_blocking_region
|
171
158
|
#{fn_signature} {
|
172
|
-
|
173
|
-
|
174
|
-
|
159
|
+
#{struct.name} args = {
|
160
|
+
.rc = ZKRB_FAIL,
|
161
|
+
#{initializer_lines}
|
162
|
+
};
|
175
163
|
EOS
|
176
164
|
end
|
177
165
|
|
178
166
|
def rb_thread_blocking_region_call
|
179
|
-
" zkrb_thread_blocking_region(#{wrapper_fn.name}, (void *)
|
167
|
+
" zkrb_thread_blocking_region(#{wrapper_fn.name}, (void *)&args);"
|
180
168
|
end
|
181
169
|
|
182
170
|
def bottom
|
183
171
|
<<-EOS
|
184
172
|
|
185
|
-
|
186
|
-
|
187
|
-
error:
|
188
|
-
free(ptr);
|
189
|
-
return rc;
|
173
|
+
return args.rc;
|
190
174
|
}
|
191
175
|
EOS
|
192
176
|
end
|
193
177
|
|
194
178
|
def body
|
195
|
-
@body ||= [top,
|
179
|
+
@body ||= [top, rb_thread_blocking_region_call, bottom].join("\n")
|
196
180
|
end
|
197
181
|
end
|
198
182
|
|
@@ -209,6 +193,8 @@ class GeneratedCode < Struct.new(:structs, :wrapper_fns, :calling_fns)
|
|
209
193
|
new.tap do |code|
|
210
194
|
while true
|
211
195
|
break unless text =~ REGEXP
|
196
|
+
text = $~.post_match
|
197
|
+
|
212
198
|
zoo_fn_name, argstr = $1
|
213
199
|
argstr = $2
|
214
200
|
|
@@ -228,8 +214,6 @@ class GeneratedCode < Struct.new(:structs, :wrapper_fns, :calling_fns)
|
|
228
214
|
code.structs << struct
|
229
215
|
code.wrapper_fns << wrapper_fn
|
230
216
|
code.calling_fns << calling_fn
|
231
|
-
|
232
|
-
text = $~.post_match
|
233
217
|
end
|
234
218
|
end
|
235
219
|
end
|
data/ext/zkrb_wrapper.c
CHANGED
@@ -21,20 +21,14 @@ static VALUE zkrb_gvl_zoo_recv_timeout(void *data) {
|
|
21
21
|
|
22
22
|
// wrapper that calls zoo_recv_timeout via zkrb_gvl_zoo_recv_timeout inside rb_thread_blocking_region
|
23
23
|
int zkrb_call_zoo_recv_timeout(zhandle_t *zh) {
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
zkrb_zoo_recv_timeout_args_t args = {
|
25
|
+
.rc = ZKRB_FAIL,
|
26
|
+
.zh = zh
|
27
|
+
};
|
27
28
|
|
28
|
-
|
29
|
-
ptr->zh = zh;
|
29
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_recv_timeout, (void *)&args);
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
rc = ptr->rc;
|
34
|
-
|
35
|
-
error:
|
36
|
-
free(ptr);
|
37
|
-
return rc;
|
31
|
+
return args.rc;
|
38
32
|
}
|
39
33
|
|
40
34
|
|
@@ -46,20 +40,14 @@ static VALUE zkrb_gvl_zoo_state(void *data) {
|
|
46
40
|
|
47
41
|
// wrapper that calls zoo_state via zkrb_gvl_zoo_state inside rb_thread_blocking_region
|
48
42
|
int zkrb_call_zoo_state(zhandle_t *zh) {
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
ptr->rc = rc;
|
54
|
-
ptr->zh = zh;
|
55
|
-
|
56
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_state, (void *)ptr);
|
43
|
+
zkrb_zoo_state_args_t args = {
|
44
|
+
.rc = ZKRB_FAIL,
|
45
|
+
.zh = zh
|
46
|
+
};
|
57
47
|
|
58
|
-
|
48
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_state, (void *)&args);
|
59
49
|
|
60
|
-
|
61
|
-
free(ptr);
|
62
|
-
return rc;
|
50
|
+
return args.rc;
|
63
51
|
}
|
64
52
|
|
65
53
|
|
@@ -71,27 +59,21 @@ static VALUE zkrb_gvl_zoo_acreate(void *data) {
|
|
71
59
|
|
72
60
|
// wrapper that calls zoo_acreate via zkrb_gvl_zoo_acreate inside rb_thread_blocking_region
|
73
61
|
int zkrb_call_zoo_acreate(zhandle_t *zh, const char *path, const char *value, int valuelen, const struct ACL_vector *acl, int flags, string_completion_t completion, const void *data) {
|
74
|
-
|
75
|
-
|
76
|
-
|
62
|
+
zkrb_zoo_acreate_args_t args = {
|
63
|
+
.rc = ZKRB_FAIL,
|
64
|
+
.zh = zh,
|
65
|
+
.path = path,
|
66
|
+
.value = value,
|
67
|
+
.valuelen = valuelen,
|
68
|
+
.acl = acl,
|
69
|
+
.flags = flags,
|
70
|
+
.completion = completion,
|
71
|
+
.data = data
|
72
|
+
};
|
77
73
|
|
78
|
-
|
79
|
-
ptr->zh = zh;
|
80
|
-
ptr->path = path;
|
81
|
-
ptr->value = value;
|
82
|
-
ptr->valuelen = valuelen;
|
83
|
-
ptr->acl = acl;
|
84
|
-
ptr->flags = flags;
|
85
|
-
ptr->completion = completion;
|
86
|
-
ptr->data = data;
|
74
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_acreate, (void *)&args);
|
87
75
|
|
88
|
-
|
89
|
-
|
90
|
-
rc = ptr->rc;
|
91
|
-
|
92
|
-
error:
|
93
|
-
free(ptr);
|
94
|
-
return rc;
|
76
|
+
return args.rc;
|
95
77
|
}
|
96
78
|
|
97
79
|
|
@@ -103,24 +85,18 @@ static VALUE zkrb_gvl_zoo_adelete(void *data) {
|
|
103
85
|
|
104
86
|
// wrapper that calls zoo_adelete via zkrb_gvl_zoo_adelete inside rb_thread_blocking_region
|
105
87
|
int zkrb_call_zoo_adelete(zhandle_t *zh, const char *path, int version, void_completion_t completion, const void *data) {
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
ptr->completion = completion;
|
115
|
-
ptr->data = data;
|
116
|
-
|
117
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_adelete, (void *)ptr);
|
88
|
+
zkrb_zoo_adelete_args_t args = {
|
89
|
+
.rc = ZKRB_FAIL,
|
90
|
+
.zh = zh,
|
91
|
+
.path = path,
|
92
|
+
.version = version,
|
93
|
+
.completion = completion,
|
94
|
+
.data = data
|
95
|
+
};
|
118
96
|
|
119
|
-
|
97
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_adelete, (void *)&args);
|
120
98
|
|
121
|
-
|
122
|
-
free(ptr);
|
123
|
-
return rc;
|
99
|
+
return args.rc;
|
124
100
|
}
|
125
101
|
|
126
102
|
|
@@ -132,24 +108,18 @@ static VALUE zkrb_gvl_zoo_aexists(void *data) {
|
|
132
108
|
|
133
109
|
// wrapper that calls zoo_aexists via zkrb_gvl_zoo_aexists inside rb_thread_blocking_region
|
134
110
|
int zkrb_call_zoo_aexists(zhandle_t *zh, const char *path, int watch, stat_completion_t completion, const void *data) {
|
135
|
-
|
136
|
-
|
137
|
-
|
111
|
+
zkrb_zoo_aexists_args_t args = {
|
112
|
+
.rc = ZKRB_FAIL,
|
113
|
+
.zh = zh,
|
114
|
+
.path = path,
|
115
|
+
.watch = watch,
|
116
|
+
.completion = completion,
|
117
|
+
.data = data
|
118
|
+
};
|
138
119
|
|
139
|
-
|
140
|
-
ptr->zh = zh;
|
141
|
-
ptr->path = path;
|
142
|
-
ptr->watch = watch;
|
143
|
-
ptr->completion = completion;
|
144
|
-
ptr->data = data;
|
120
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_aexists, (void *)&args);
|
145
121
|
|
146
|
-
|
147
|
-
|
148
|
-
rc = ptr->rc;
|
149
|
-
|
150
|
-
error:
|
151
|
-
free(ptr);
|
152
|
-
return rc;
|
122
|
+
return args.rc;
|
153
123
|
}
|
154
124
|
|
155
125
|
|
@@ -161,25 +131,19 @@ static VALUE zkrb_gvl_zoo_awexists(void *data) {
|
|
161
131
|
|
162
132
|
// wrapper that calls zoo_awexists via zkrb_gvl_zoo_awexists inside rb_thread_blocking_region
|
163
133
|
int zkrb_call_zoo_awexists(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, stat_completion_t completion, const void *data) {
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
ptr->completion = completion;
|
174
|
-
ptr->data = data;
|
175
|
-
|
176
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_awexists, (void *)ptr);
|
134
|
+
zkrb_zoo_awexists_args_t args = {
|
135
|
+
.rc = ZKRB_FAIL,
|
136
|
+
.zh = zh,
|
137
|
+
.path = path,
|
138
|
+
.watcher = watcher,
|
139
|
+
.watcherCtx = watcherCtx,
|
140
|
+
.completion = completion,
|
141
|
+
.data = data
|
142
|
+
};
|
177
143
|
|
178
|
-
|
144
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_awexists, (void *)&args);
|
179
145
|
|
180
|
-
|
181
|
-
free(ptr);
|
182
|
-
return rc;
|
146
|
+
return args.rc;
|
183
147
|
}
|
184
148
|
|
185
149
|
|
@@ -191,24 +155,18 @@ static VALUE zkrb_gvl_zoo_aget(void *data) {
|
|
191
155
|
|
192
156
|
// wrapper that calls zoo_aget via zkrb_gvl_zoo_aget inside rb_thread_blocking_region
|
193
157
|
int zkrb_call_zoo_aget(zhandle_t *zh, const char *path, int watch, data_completion_t completion, const void *data) {
|
194
|
-
|
195
|
-
|
196
|
-
|
158
|
+
zkrb_zoo_aget_args_t args = {
|
159
|
+
.rc = ZKRB_FAIL,
|
160
|
+
.zh = zh,
|
161
|
+
.path = path,
|
162
|
+
.watch = watch,
|
163
|
+
.completion = completion,
|
164
|
+
.data = data
|
165
|
+
};
|
197
166
|
|
198
|
-
|
199
|
-
ptr->zh = zh;
|
200
|
-
ptr->path = path;
|
201
|
-
ptr->watch = watch;
|
202
|
-
ptr->completion = completion;
|
203
|
-
ptr->data = data;
|
167
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_aget, (void *)&args);
|
204
168
|
|
205
|
-
|
206
|
-
|
207
|
-
rc = ptr->rc;
|
208
|
-
|
209
|
-
error:
|
210
|
-
free(ptr);
|
211
|
-
return rc;
|
169
|
+
return args.rc;
|
212
170
|
}
|
213
171
|
|
214
172
|
|
@@ -220,25 +178,19 @@ static VALUE zkrb_gvl_zoo_awget(void *data) {
|
|
220
178
|
|
221
179
|
// wrapper that calls zoo_awget via zkrb_gvl_zoo_awget inside rb_thread_blocking_region
|
222
180
|
int zkrb_call_zoo_awget(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, data_completion_t completion, const void *data) {
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
ptr->completion = completion;
|
233
|
-
ptr->data = data;
|
234
|
-
|
235
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_awget, (void *)ptr);
|
181
|
+
zkrb_zoo_awget_args_t args = {
|
182
|
+
.rc = ZKRB_FAIL,
|
183
|
+
.zh = zh,
|
184
|
+
.path = path,
|
185
|
+
.watcher = watcher,
|
186
|
+
.watcherCtx = watcherCtx,
|
187
|
+
.completion = completion,
|
188
|
+
.data = data
|
189
|
+
};
|
236
190
|
|
237
|
-
|
191
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_awget, (void *)&args);
|
238
192
|
|
239
|
-
|
240
|
-
free(ptr);
|
241
|
-
return rc;
|
193
|
+
return args.rc;
|
242
194
|
}
|
243
195
|
|
244
196
|
|
@@ -250,26 +202,20 @@ static VALUE zkrb_gvl_zoo_aset(void *data) {
|
|
250
202
|
|
251
203
|
// wrapper that calls zoo_aset via zkrb_gvl_zoo_aset inside rb_thread_blocking_region
|
252
204
|
int zkrb_call_zoo_aset(zhandle_t *zh, const char *path, const char *buffer, int buflen, int version, stat_completion_t completion, const void *data) {
|
253
|
-
|
254
|
-
|
255
|
-
|
205
|
+
zkrb_zoo_aset_args_t args = {
|
206
|
+
.rc = ZKRB_FAIL,
|
207
|
+
.zh = zh,
|
208
|
+
.path = path,
|
209
|
+
.buffer = buffer,
|
210
|
+
.buflen = buflen,
|
211
|
+
.version = version,
|
212
|
+
.completion = completion,
|
213
|
+
.data = data
|
214
|
+
};
|
256
215
|
|
257
|
-
|
258
|
-
ptr->zh = zh;
|
259
|
-
ptr->path = path;
|
260
|
-
ptr->buffer = buffer;
|
261
|
-
ptr->buflen = buflen;
|
262
|
-
ptr->version = version;
|
263
|
-
ptr->completion = completion;
|
264
|
-
ptr->data = data;
|
216
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_aset, (void *)&args);
|
265
217
|
|
266
|
-
|
267
|
-
|
268
|
-
rc = ptr->rc;
|
269
|
-
|
270
|
-
error:
|
271
|
-
free(ptr);
|
272
|
-
return rc;
|
218
|
+
return args.rc;
|
273
219
|
}
|
274
220
|
|
275
221
|
|
@@ -281,24 +227,18 @@ static VALUE zkrb_gvl_zoo_aget_children(void *data) {
|
|
281
227
|
|
282
228
|
// wrapper that calls zoo_aget_children via zkrb_gvl_zoo_aget_children inside rb_thread_blocking_region
|
283
229
|
int zkrb_call_zoo_aget_children(zhandle_t *zh, const char *path, int watch, strings_completion_t completion, const void *data) {
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
ptr->completion = completion;
|
293
|
-
ptr->data = data;
|
294
|
-
|
295
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_aget_children, (void *)ptr);
|
230
|
+
zkrb_zoo_aget_children_args_t args = {
|
231
|
+
.rc = ZKRB_FAIL,
|
232
|
+
.zh = zh,
|
233
|
+
.path = path,
|
234
|
+
.watch = watch,
|
235
|
+
.completion = completion,
|
236
|
+
.data = data
|
237
|
+
};
|
296
238
|
|
297
|
-
|
239
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_aget_children, (void *)&args);
|
298
240
|
|
299
|
-
|
300
|
-
free(ptr);
|
301
|
-
return rc;
|
241
|
+
return args.rc;
|
302
242
|
}
|
303
243
|
|
304
244
|
|
@@ -310,25 +250,19 @@ static VALUE zkrb_gvl_zoo_awget_children(void *data) {
|
|
310
250
|
|
311
251
|
// wrapper that calls zoo_awget_children via zkrb_gvl_zoo_awget_children inside rb_thread_blocking_region
|
312
252
|
int zkrb_call_zoo_awget_children(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, strings_completion_t completion, const void *data) {
|
313
|
-
|
314
|
-
|
315
|
-
|
253
|
+
zkrb_zoo_awget_children_args_t args = {
|
254
|
+
.rc = ZKRB_FAIL,
|
255
|
+
.zh = zh,
|
256
|
+
.path = path,
|
257
|
+
.watcher = watcher,
|
258
|
+
.watcherCtx = watcherCtx,
|
259
|
+
.completion = completion,
|
260
|
+
.data = data
|
261
|
+
};
|
316
262
|
|
317
|
-
|
318
|
-
ptr->zh = zh;
|
319
|
-
ptr->path = path;
|
320
|
-
ptr->watcher = watcher;
|
321
|
-
ptr->watcherCtx = watcherCtx;
|
322
|
-
ptr->completion = completion;
|
323
|
-
ptr->data = data;
|
263
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_awget_children, (void *)&args);
|
324
264
|
|
325
|
-
|
326
|
-
|
327
|
-
rc = ptr->rc;
|
328
|
-
|
329
|
-
error:
|
330
|
-
free(ptr);
|
331
|
-
return rc;
|
265
|
+
return args.rc;
|
332
266
|
}
|
333
267
|
|
334
268
|
|
@@ -340,24 +274,18 @@ static VALUE zkrb_gvl_zoo_aget_children2(void *data) {
|
|
340
274
|
|
341
275
|
// wrapper that calls zoo_aget_children2 via zkrb_gvl_zoo_aget_children2 inside rb_thread_blocking_region
|
342
276
|
int zkrb_call_zoo_aget_children2(zhandle_t *zh, const char *path, int watch, strings_stat_completion_t completion, const void *data) {
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
ptr->completion = completion;
|
352
|
-
ptr->data = data;
|
353
|
-
|
354
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_aget_children2, (void *)ptr);
|
277
|
+
zkrb_zoo_aget_children2_args_t args = {
|
278
|
+
.rc = ZKRB_FAIL,
|
279
|
+
.zh = zh,
|
280
|
+
.path = path,
|
281
|
+
.watch = watch,
|
282
|
+
.completion = completion,
|
283
|
+
.data = data
|
284
|
+
};
|
355
285
|
|
356
|
-
|
286
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_aget_children2, (void *)&args);
|
357
287
|
|
358
|
-
|
359
|
-
free(ptr);
|
360
|
-
return rc;
|
288
|
+
return args.rc;
|
361
289
|
}
|
362
290
|
|
363
291
|
|
@@ -369,25 +297,19 @@ static VALUE zkrb_gvl_zoo_awget_children2(void *data) {
|
|
369
297
|
|
370
298
|
// wrapper that calls zoo_awget_children2 via zkrb_gvl_zoo_awget_children2 inside rb_thread_blocking_region
|
371
299
|
int zkrb_call_zoo_awget_children2(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, strings_stat_completion_t completion, const void *data) {
|
372
|
-
|
373
|
-
|
374
|
-
|
300
|
+
zkrb_zoo_awget_children2_args_t args = {
|
301
|
+
.rc = ZKRB_FAIL,
|
302
|
+
.zh = zh,
|
303
|
+
.path = path,
|
304
|
+
.watcher = watcher,
|
305
|
+
.watcherCtx = watcherCtx,
|
306
|
+
.completion = completion,
|
307
|
+
.data = data
|
308
|
+
};
|
375
309
|
|
376
|
-
|
377
|
-
ptr->zh = zh;
|
378
|
-
ptr->path = path;
|
379
|
-
ptr->watcher = watcher;
|
380
|
-
ptr->watcherCtx = watcherCtx;
|
381
|
-
ptr->completion = completion;
|
382
|
-
ptr->data = data;
|
310
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_awget_children2, (void *)&args);
|
383
311
|
|
384
|
-
|
385
|
-
|
386
|
-
rc = ptr->rc;
|
387
|
-
|
388
|
-
error:
|
389
|
-
free(ptr);
|
390
|
-
return rc;
|
312
|
+
return args.rc;
|
391
313
|
}
|
392
314
|
|
393
315
|
|
@@ -399,23 +321,17 @@ static VALUE zkrb_gvl_zoo_async(void *data) {
|
|
399
321
|
|
400
322
|
// wrapper that calls zoo_async via zkrb_gvl_zoo_async inside rb_thread_blocking_region
|
401
323
|
int zkrb_call_zoo_async(zhandle_t *zh, const char *path, string_completion_t completion, const void *data) {
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
ptr->completion = completion;
|
410
|
-
ptr->data = data;
|
411
|
-
|
412
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_async, (void *)ptr);
|
324
|
+
zkrb_zoo_async_args_t args = {
|
325
|
+
.rc = ZKRB_FAIL,
|
326
|
+
.zh = zh,
|
327
|
+
.path = path,
|
328
|
+
.completion = completion,
|
329
|
+
.data = data
|
330
|
+
};
|
413
331
|
|
414
|
-
|
332
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_async, (void *)&args);
|
415
333
|
|
416
|
-
|
417
|
-
free(ptr);
|
418
|
-
return rc;
|
334
|
+
return args.rc;
|
419
335
|
}
|
420
336
|
|
421
337
|
|
@@ -427,23 +343,17 @@ static VALUE zkrb_gvl_zoo_aget_acl(void *data) {
|
|
427
343
|
|
428
344
|
// wrapper that calls zoo_aget_acl via zkrb_gvl_zoo_aget_acl inside rb_thread_blocking_region
|
429
345
|
int zkrb_call_zoo_aget_acl(zhandle_t *zh, const char *path, acl_completion_t completion, const void *data) {
|
430
|
-
|
431
|
-
|
432
|
-
|
346
|
+
zkrb_zoo_aget_acl_args_t args = {
|
347
|
+
.rc = ZKRB_FAIL,
|
348
|
+
.zh = zh,
|
349
|
+
.path = path,
|
350
|
+
.completion = completion,
|
351
|
+
.data = data
|
352
|
+
};
|
433
353
|
|
434
|
-
|
435
|
-
ptr->zh = zh;
|
436
|
-
ptr->path = path;
|
437
|
-
ptr->completion = completion;
|
438
|
-
ptr->data = data;
|
354
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_aget_acl, (void *)&args);
|
439
355
|
|
440
|
-
|
441
|
-
|
442
|
-
rc = ptr->rc;
|
443
|
-
|
444
|
-
error:
|
445
|
-
free(ptr);
|
446
|
-
return rc;
|
356
|
+
return args.rc;
|
447
357
|
}
|
448
358
|
|
449
359
|
|
@@ -455,25 +365,19 @@ static VALUE zkrb_gvl_zoo_aset_acl(void *data) {
|
|
455
365
|
|
456
366
|
// wrapper that calls zoo_aset_acl via zkrb_gvl_zoo_aset_acl inside rb_thread_blocking_region
|
457
367
|
int zkrb_call_zoo_aset_acl(zhandle_t *zh, const char *path, int version, struct ACL_vector *acl, void_completion_t completion, const void *data) {
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
ptr->completion = completion;
|
468
|
-
ptr->data = data;
|
368
|
+
zkrb_zoo_aset_acl_args_t args = {
|
369
|
+
.rc = ZKRB_FAIL,
|
370
|
+
.zh = zh,
|
371
|
+
.path = path,
|
372
|
+
.version = version,
|
373
|
+
.acl = acl,
|
374
|
+
.completion = completion,
|
375
|
+
.data = data
|
376
|
+
};
|
469
377
|
|
470
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_aset_acl, (void *)
|
378
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_aset_acl, (void *)&args);
|
471
379
|
|
472
|
-
|
473
|
-
|
474
|
-
error:
|
475
|
-
free(ptr);
|
476
|
-
return rc;
|
380
|
+
return args.rc;
|
477
381
|
}
|
478
382
|
|
479
383
|
|
@@ -485,25 +389,19 @@ static VALUE zkrb_gvl_zoo_add_auth(void *data) {
|
|
485
389
|
|
486
390
|
// wrapper that calls zoo_add_auth via zkrb_gvl_zoo_add_auth inside rb_thread_blocking_region
|
487
391
|
int zkrb_call_zoo_add_auth(zhandle_t *zh, const char* scheme, const char* cert, int certLen, void_completion_t completion, const void *data) {
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
ptr->completion = completion;
|
498
|
-
ptr->data = data;
|
392
|
+
zkrb_zoo_add_auth_args_t args = {
|
393
|
+
.rc = ZKRB_FAIL,
|
394
|
+
.zh = zh,
|
395
|
+
.scheme = scheme,
|
396
|
+
.cert = cert,
|
397
|
+
.certLen = certLen,
|
398
|
+
.completion = completion,
|
399
|
+
.data = data
|
400
|
+
};
|
499
401
|
|
500
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_add_auth, (void *)
|
402
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_add_auth, (void *)&args);
|
501
403
|
|
502
|
-
|
503
|
-
|
504
|
-
error:
|
505
|
-
free(ptr);
|
506
|
-
return rc;
|
404
|
+
return args.rc;
|
507
405
|
}
|
508
406
|
|
509
407
|
|
@@ -515,27 +413,21 @@ static VALUE zkrb_gvl_zoo_create(void *data) {
|
|
515
413
|
|
516
414
|
// wrapper that calls zoo_create via zkrb_gvl_zoo_create inside rb_thread_blocking_region
|
517
415
|
int zkrb_call_zoo_create(zhandle_t *zh, const char *path, const char *value, int valuelen, const struct ACL_vector *acl, int flags, char *path_buffer, int path_buffer_len) {
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
ptr->path_buffer = path_buffer;
|
530
|
-
ptr->path_buffer_len = path_buffer_len;
|
416
|
+
zkrb_zoo_create_args_t args = {
|
417
|
+
.rc = ZKRB_FAIL,
|
418
|
+
.zh = zh,
|
419
|
+
.path = path,
|
420
|
+
.value = value,
|
421
|
+
.valuelen = valuelen,
|
422
|
+
.acl = acl,
|
423
|
+
.flags = flags,
|
424
|
+
.path_buffer = path_buffer,
|
425
|
+
.path_buffer_len = path_buffer_len
|
426
|
+
};
|
531
427
|
|
532
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_create, (void *)
|
428
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_create, (void *)&args);
|
533
429
|
|
534
|
-
|
535
|
-
|
536
|
-
error:
|
537
|
-
free(ptr);
|
538
|
-
return rc;
|
430
|
+
return args.rc;
|
539
431
|
}
|
540
432
|
|
541
433
|
|
@@ -547,22 +439,16 @@ static VALUE zkrb_gvl_zoo_delete(void *data) {
|
|
547
439
|
|
548
440
|
// wrapper that calls zoo_delete via zkrb_gvl_zoo_delete inside rb_thread_blocking_region
|
549
441
|
int zkrb_call_zoo_delete(zhandle_t *zh, const char *path, int version) {
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
ptr->path = path;
|
557
|
-
ptr->version = version;
|
442
|
+
zkrb_zoo_delete_args_t args = {
|
443
|
+
.rc = ZKRB_FAIL,
|
444
|
+
.zh = zh,
|
445
|
+
.path = path,
|
446
|
+
.version = version
|
447
|
+
};
|
558
448
|
|
559
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_delete, (void *)
|
449
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_delete, (void *)&args);
|
560
450
|
|
561
|
-
|
562
|
-
|
563
|
-
error:
|
564
|
-
free(ptr);
|
565
|
-
return rc;
|
451
|
+
return args.rc;
|
566
452
|
}
|
567
453
|
|
568
454
|
|
@@ -574,23 +460,17 @@ static VALUE zkrb_gvl_zoo_exists(void *data) {
|
|
574
460
|
|
575
461
|
// wrapper that calls zoo_exists via zkrb_gvl_zoo_exists inside rb_thread_blocking_region
|
576
462
|
int zkrb_call_zoo_exists(zhandle_t *zh, const char *path, int watch, struct Stat *stat) {
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
ptr->watch = watch;
|
585
|
-
ptr->stat = stat;
|
463
|
+
zkrb_zoo_exists_args_t args = {
|
464
|
+
.rc = ZKRB_FAIL,
|
465
|
+
.zh = zh,
|
466
|
+
.path = path,
|
467
|
+
.watch = watch,
|
468
|
+
.stat = stat
|
469
|
+
};
|
586
470
|
|
587
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_exists, (void *)
|
471
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_exists, (void *)&args);
|
588
472
|
|
589
|
-
|
590
|
-
|
591
|
-
error:
|
592
|
-
free(ptr);
|
593
|
-
return rc;
|
473
|
+
return args.rc;
|
594
474
|
}
|
595
475
|
|
596
476
|
|
@@ -602,24 +482,18 @@ static VALUE zkrb_gvl_zoo_wexists(void *data) {
|
|
602
482
|
|
603
483
|
// wrapper that calls zoo_wexists via zkrb_gvl_zoo_wexists inside rb_thread_blocking_region
|
604
484
|
int zkrb_call_zoo_wexists(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, struct Stat *stat) {
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
ptr->watcherCtx = watcherCtx;
|
614
|
-
ptr->stat = stat;
|
485
|
+
zkrb_zoo_wexists_args_t args = {
|
486
|
+
.rc = ZKRB_FAIL,
|
487
|
+
.zh = zh,
|
488
|
+
.path = path,
|
489
|
+
.watcher = watcher,
|
490
|
+
.watcherCtx = watcherCtx,
|
491
|
+
.stat = stat
|
492
|
+
};
|
615
493
|
|
616
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_wexists, (void *)
|
494
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_wexists, (void *)&args);
|
617
495
|
|
618
|
-
|
619
|
-
|
620
|
-
error:
|
621
|
-
free(ptr);
|
622
|
-
return rc;
|
496
|
+
return args.rc;
|
623
497
|
}
|
624
498
|
|
625
499
|
|
@@ -631,25 +505,19 @@ static VALUE zkrb_gvl_zoo_get(void *data) {
|
|
631
505
|
|
632
506
|
// wrapper that calls zoo_get via zkrb_gvl_zoo_get inside rb_thread_blocking_region
|
633
507
|
int zkrb_call_zoo_get(zhandle_t *zh, const char *path, int watch, char *buffer, int* buffer_len, struct Stat *stat) {
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
ptr->buffer_len = buffer_len;
|
644
|
-
ptr->stat = stat;
|
508
|
+
zkrb_zoo_get_args_t args = {
|
509
|
+
.rc = ZKRB_FAIL,
|
510
|
+
.zh = zh,
|
511
|
+
.path = path,
|
512
|
+
.watch = watch,
|
513
|
+
.buffer = buffer,
|
514
|
+
.buffer_len = buffer_len,
|
515
|
+
.stat = stat
|
516
|
+
};
|
645
517
|
|
646
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_get, (void *)
|
518
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_get, (void *)&args);
|
647
519
|
|
648
|
-
|
649
|
-
|
650
|
-
error:
|
651
|
-
free(ptr);
|
652
|
-
return rc;
|
520
|
+
return args.rc;
|
653
521
|
}
|
654
522
|
|
655
523
|
|
@@ -661,26 +529,20 @@ static VALUE zkrb_gvl_zoo_wget(void *data) {
|
|
661
529
|
|
662
530
|
// wrapper that calls zoo_wget via zkrb_gvl_zoo_wget inside rb_thread_blocking_region
|
663
531
|
int zkrb_call_zoo_wget(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, char *buffer, int* buffer_len, struct Stat *stat) {
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
ptr->buffer_len = buffer_len;
|
675
|
-
ptr->stat = stat;
|
532
|
+
zkrb_zoo_wget_args_t args = {
|
533
|
+
.rc = ZKRB_FAIL,
|
534
|
+
.zh = zh,
|
535
|
+
.path = path,
|
536
|
+
.watcher = watcher,
|
537
|
+
.watcherCtx = watcherCtx,
|
538
|
+
.buffer = buffer,
|
539
|
+
.buffer_len = buffer_len,
|
540
|
+
.stat = stat
|
541
|
+
};
|
676
542
|
|
677
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_wget, (void *)
|
543
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_wget, (void *)&args);
|
678
544
|
|
679
|
-
|
680
|
-
|
681
|
-
error:
|
682
|
-
free(ptr);
|
683
|
-
return rc;
|
545
|
+
return args.rc;
|
684
546
|
}
|
685
547
|
|
686
548
|
|
@@ -692,24 +554,18 @@ static VALUE zkrb_gvl_zoo_set(void *data) {
|
|
692
554
|
|
693
555
|
// wrapper that calls zoo_set via zkrb_gvl_zoo_set inside rb_thread_blocking_region
|
694
556
|
int zkrb_call_zoo_set(zhandle_t *zh, const char *path, const char *buffer, int buflen, int version) {
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
ptr->buflen = buflen;
|
704
|
-
ptr->version = version;
|
557
|
+
zkrb_zoo_set_args_t args = {
|
558
|
+
.rc = ZKRB_FAIL,
|
559
|
+
.zh = zh,
|
560
|
+
.path = path,
|
561
|
+
.buffer = buffer,
|
562
|
+
.buflen = buflen,
|
563
|
+
.version = version
|
564
|
+
};
|
705
565
|
|
706
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_set, (void *)
|
566
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_set, (void *)&args);
|
707
567
|
|
708
|
-
|
709
|
-
|
710
|
-
error:
|
711
|
-
free(ptr);
|
712
|
-
return rc;
|
568
|
+
return args.rc;
|
713
569
|
}
|
714
570
|
|
715
571
|
|
@@ -721,25 +577,19 @@ static VALUE zkrb_gvl_zoo_set2(void *data) {
|
|
721
577
|
|
722
578
|
// wrapper that calls zoo_set2 via zkrb_gvl_zoo_set2 inside rb_thread_blocking_region
|
723
579
|
int zkrb_call_zoo_set2(zhandle_t *zh, const char *path, const char *buffer, int buflen, int version, struct Stat *stat) {
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
ptr->version = version;
|
734
|
-
ptr->stat = stat;
|
580
|
+
zkrb_zoo_set2_args_t args = {
|
581
|
+
.rc = ZKRB_FAIL,
|
582
|
+
.zh = zh,
|
583
|
+
.path = path,
|
584
|
+
.buffer = buffer,
|
585
|
+
.buflen = buflen,
|
586
|
+
.version = version,
|
587
|
+
.stat = stat
|
588
|
+
};
|
735
589
|
|
736
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_set2, (void *)
|
590
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_set2, (void *)&args);
|
737
591
|
|
738
|
-
|
739
|
-
|
740
|
-
error:
|
741
|
-
free(ptr);
|
742
|
-
return rc;
|
592
|
+
return args.rc;
|
743
593
|
}
|
744
594
|
|
745
595
|
|
@@ -751,23 +601,17 @@ static VALUE zkrb_gvl_zoo_get_children(void *data) {
|
|
751
601
|
|
752
602
|
// wrapper that calls zoo_get_children via zkrb_gvl_zoo_get_children inside rb_thread_blocking_region
|
753
603
|
int zkrb_call_zoo_get_children(zhandle_t *zh, const char *path, int watch, struct String_vector *strings) {
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
ptr->watch = watch;
|
762
|
-
ptr->strings = strings;
|
604
|
+
zkrb_zoo_get_children_args_t args = {
|
605
|
+
.rc = ZKRB_FAIL,
|
606
|
+
.zh = zh,
|
607
|
+
.path = path,
|
608
|
+
.watch = watch,
|
609
|
+
.strings = strings
|
610
|
+
};
|
763
611
|
|
764
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_get_children, (void *)
|
612
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_get_children, (void *)&args);
|
765
613
|
|
766
|
-
|
767
|
-
|
768
|
-
error:
|
769
|
-
free(ptr);
|
770
|
-
return rc;
|
614
|
+
return args.rc;
|
771
615
|
}
|
772
616
|
|
773
617
|
|
@@ -779,24 +623,18 @@ static VALUE zkrb_gvl_zoo_wget_children(void *data) {
|
|
779
623
|
|
780
624
|
// wrapper that calls zoo_wget_children via zkrb_gvl_zoo_wget_children inside rb_thread_blocking_region
|
781
625
|
int zkrb_call_zoo_wget_children(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, struct String_vector *strings) {
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
ptr->watcherCtx = watcherCtx;
|
791
|
-
ptr->strings = strings;
|
626
|
+
zkrb_zoo_wget_children_args_t args = {
|
627
|
+
.rc = ZKRB_FAIL,
|
628
|
+
.zh = zh,
|
629
|
+
.path = path,
|
630
|
+
.watcher = watcher,
|
631
|
+
.watcherCtx = watcherCtx,
|
632
|
+
.strings = strings
|
633
|
+
};
|
792
634
|
|
793
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_wget_children, (void *)
|
635
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_wget_children, (void *)&args);
|
794
636
|
|
795
|
-
|
796
|
-
|
797
|
-
error:
|
798
|
-
free(ptr);
|
799
|
-
return rc;
|
637
|
+
return args.rc;
|
800
638
|
}
|
801
639
|
|
802
640
|
|
@@ -808,24 +646,18 @@ static VALUE zkrb_gvl_zoo_get_children2(void *data) {
|
|
808
646
|
|
809
647
|
// wrapper that calls zoo_get_children2 via zkrb_gvl_zoo_get_children2 inside rb_thread_blocking_region
|
810
648
|
int zkrb_call_zoo_get_children2(zhandle_t *zh, const char *path, int watch, struct String_vector *strings, struct Stat *stat) {
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
ptr->strings = strings;
|
820
|
-
ptr->stat = stat;
|
649
|
+
zkrb_zoo_get_children2_args_t args = {
|
650
|
+
.rc = ZKRB_FAIL,
|
651
|
+
.zh = zh,
|
652
|
+
.path = path,
|
653
|
+
.watch = watch,
|
654
|
+
.strings = strings,
|
655
|
+
.stat = stat
|
656
|
+
};
|
821
657
|
|
822
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_get_children2, (void *)
|
658
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_get_children2, (void *)&args);
|
823
659
|
|
824
|
-
|
825
|
-
|
826
|
-
error:
|
827
|
-
free(ptr);
|
828
|
-
return rc;
|
660
|
+
return args.rc;
|
829
661
|
}
|
830
662
|
|
831
663
|
|
@@ -837,25 +669,19 @@ static VALUE zkrb_gvl_zoo_wget_children2(void *data) {
|
|
837
669
|
|
838
670
|
// wrapper that calls zoo_wget_children2 via zkrb_gvl_zoo_wget_children2 inside rb_thread_blocking_region
|
839
671
|
int zkrb_call_zoo_wget_children2(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, struct String_vector *strings, struct Stat *stat) {
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
ptr->strings = strings;
|
850
|
-
ptr->stat = stat;
|
672
|
+
zkrb_zoo_wget_children2_args_t args = {
|
673
|
+
.rc = ZKRB_FAIL,
|
674
|
+
.zh = zh,
|
675
|
+
.path = path,
|
676
|
+
.watcher = watcher,
|
677
|
+
.watcherCtx = watcherCtx,
|
678
|
+
.strings = strings,
|
679
|
+
.stat = stat
|
680
|
+
};
|
851
681
|
|
852
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_wget_children2, (void *)
|
682
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_wget_children2, (void *)&args);
|
853
683
|
|
854
|
-
|
855
|
-
|
856
|
-
error:
|
857
|
-
free(ptr);
|
858
|
-
return rc;
|
684
|
+
return args.rc;
|
859
685
|
}
|
860
686
|
|
861
687
|
|
@@ -867,23 +693,17 @@ static VALUE zkrb_gvl_zoo_get_acl(void *data) {
|
|
867
693
|
|
868
694
|
// wrapper that calls zoo_get_acl via zkrb_gvl_zoo_get_acl inside rb_thread_blocking_region
|
869
695
|
int zkrb_call_zoo_get_acl(zhandle_t *zh, const char *path, struct ACL_vector *acl, struct Stat *stat) {
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
ptr->acl = acl;
|
878
|
-
ptr->stat = stat;
|
696
|
+
zkrb_zoo_get_acl_args_t args = {
|
697
|
+
.rc = ZKRB_FAIL,
|
698
|
+
.zh = zh,
|
699
|
+
.path = path,
|
700
|
+
.acl = acl,
|
701
|
+
.stat = stat
|
702
|
+
};
|
879
703
|
|
880
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_get_acl, (void *)
|
704
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_get_acl, (void *)&args);
|
881
705
|
|
882
|
-
|
883
|
-
|
884
|
-
error:
|
885
|
-
free(ptr);
|
886
|
-
return rc;
|
706
|
+
return args.rc;
|
887
707
|
}
|
888
708
|
|
889
709
|
|
@@ -895,23 +715,17 @@ static VALUE zkrb_gvl_zoo_set_acl(void *data) {
|
|
895
715
|
|
896
716
|
// wrapper that calls zoo_set_acl via zkrb_gvl_zoo_set_acl inside rb_thread_blocking_region
|
897
717
|
int zkrb_call_zoo_set_acl(zhandle_t *zh, const char *path, int version, const struct ACL_vector *acl) {
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
ptr->version = version;
|
906
|
-
ptr->acl = acl;
|
907
|
-
|
908
|
-
zkrb_thread_blocking_region(zkrb_gvl_zoo_set_acl, (void *)ptr);
|
718
|
+
zkrb_zoo_set_acl_args_t args = {
|
719
|
+
.rc = ZKRB_FAIL,
|
720
|
+
.zh = zh,
|
721
|
+
.path = path,
|
722
|
+
.version = version,
|
723
|
+
.acl = acl
|
724
|
+
};
|
909
725
|
|
910
|
-
|
726
|
+
zkrb_thread_blocking_region(zkrb_gvl_zoo_set_acl, (void *)&args);
|
911
727
|
|
912
|
-
|
913
|
-
free(ptr);
|
914
|
-
return rc;
|
728
|
+
return args.rc;
|
915
729
|
}
|
916
730
|
|
917
731
|
|