Skip to content

Commit 04d6976

Browse files
committed
Enable deployment of some custom code
1 parent 2b05530 commit 04d6976

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

src/basho_bench.erl

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ load_source_files(Dir) ->
259259
case compile:file(F, [report, binary]) of
260260
{ok, Mod, Bin} ->
261261
{module, Mod} = code:load_binary(Mod, F, Bin),
262+
deploy_module(Mod),
262263
?INFO("Loaded ~p (~s)\n", [Mod, F]),
263264
ok;
264265
Error ->
@@ -307,14 +308,19 @@ setup_distributed_work() ->
307308
CodePaths = code:get_path(),
308309
rpc:multicall(SlaveNames, code, set_path, [CodePaths]),
309310
Apps = [lager, basho_bench, getopt, bear, folsom, ibrowse, riakc, riak_pb, mochiweb, protobuffs, velvet, goldrush],
310-
[distribute_app(App, SlaveNames) || App <- Apps].
311+
[distribute_app(App) || App <- Apps].
311312

312313

313-
deploy_module(Module, Nodes) ->
314-
{Module, Binary, Filename} = code:get_object_code(Module),
315-
rpc:multicall(Nodes, code, load_binary, [Module, Filename, Binary]).
314+
deploy_module(Module) ->
315+
case basho_bench_config:get(distribute_work, false) of
316+
true ->
317+
Nodes = nodes(),
318+
{Module, Binary, Filename} = code:get_object_code(Module),
319+
rpc:multicall(Nodes, code, load_binary, [Module, Filename, Binary]);
320+
false -> ok
321+
end.
316322

317-
distribute_app(App, Nodes) ->
323+
distribute_app(App) ->
318324
% :(. This is super hackish, it depends on a bunch of assumptions
319325
% But, unfortunately there are negative interactions with escript and slave nodes
320326
CodeExtension = code:objfile_extension(),
@@ -334,7 +340,7 @@ distribute_app(App, Nodes) ->
334340
{ok, Beams} = erl_prim_loader:list_dir(EbinDir),
335341
Modules = lists:filtermap(StripEndFun, Beams),
336342
ModulesLoaded = [code:load_abs(filename:join(EbinDir, ModFileName)) || ModFileName <- Modules],
337-
lists:foreach(fun({module, Module}) -> deploy_module(Module, Nodes) end, ModulesLoaded)
343+
lists:foreach(fun({module, Module}) -> deploy_module(Module) end, ModulesLoaded)
338344
end,
339345
lists:foreach(EbinDirDistributeFun, EbinsDir),
340346
ok.

0 commit comments

Comments
 (0)