Sha256: 797e81cf8b643e0d220b87a3513e38de9c87cbb9ddd2e0a1d0d377a1bf63d85f

Contents?: true

Size: 1.77 KB

Versions: 25

Compression:

Stored size: 1.77 KB

Contents

-module (utils).
-include_lib("../include/defines.hrl").
-compile(export_all).

-ifdef(EUNIT).
-include_lib("eunit/include/eunit.hrl").
-endif.

% Turn a list from
% [{"0.66"}, {"0.32"}, []] -> [0.66, 0.32]
convert_responses_to_int_list(L) ->
	Sum = lists:foldr( fun(Int, Sum) -> Int + Sum end, 0, [erlang:list_to_float(F) || {F} <- L] ),
	average_for_list(Sum, L).

% Start a timer to fire off Fun after Time number of milliseconds
start_timer(Name, Time, Fun) ->
	case whereis(Name) of
		undefined -> register(Name, spawn(fun() -> tick_timer(Time, Fun) end));
		_ -> ok
	end.
start_timer(Time, Fun) -> 
	start_timer(?MODULE, Time, Fun).
	% register(?MODULE, spawn(fun() -> tick_timer(Time, Fun) end)). 

stop_timer(Name) -> erlang:whereis(Name) ! stop.
stop_timer() -> ?MODULE ! stop. 


tick_timer(Time, Fun) -> 
	receive 
		stop -> void 
	after Time -> 
		Fun(), 
		tick_timer(Time, Fun)
	end. 

average_of_list(L) ->
	Sum = lists:foldr( fun(Int, Sum) -> 
		case erlang:is_float(Int) of
			true -> Integer = Int;
			false -> Integer = erlang:list_to_float(Int)
		end,
		Integer + Sum 
	end, 0, [F || F <- L] ),
	average_for_list(Sum, L).

% Get the average of the list
average_for_list(Num, L) ->
	case length(L) of
		0 ->
			-1;
		_ ->
			Num / length(L)
	end.



% Provisioning utils
distribute_modules_to(Modules, Nodes) ->
	% transfer the modules to all the nodes
	io:format("Sending ~p to ~p~n", [Modules, Nodes]),
	lists:foreach(fun(Node) ->
			transfer_modules(Node, Modules)
	end, Nodes).

% Transfer modules of code to this node
transfer_modules(Node, Modules) ->
	[transfer_module(Node, M) || M <- Modules].

% Transfer one module to the Node
transfer_module(Node, Module) ->
	{_Module, Binary, Filename} = code:get_object_code(Module),
	rpc:call(Node, code, load_binary, [Module, Filename, Binary]).

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
auser-poolparty-0.2.67 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.68 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.69 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.70 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.71 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.72 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.74 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.76 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.77 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.78 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.79 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.80 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.81 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.84 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.85 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.88 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.89 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.90 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.91 lib/erlang/messenger/src/utils.erl
auser-poolparty-0.2.92 lib/erlang/messenger/src/utils.erl