forked from erlang/erlide_eclipse
/
erlv8_nif.erl
53 lines (41 loc) · 1.09 KB
/
erlv8_nif.erl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
-module(erlv8_nif).
-on_load(init/0).
-export([init/0, new_vm/0, set_server/2, global/1, context/1, new_context/1,
tick/3, stop/2]).
-define(DEFAULT_PREEMPTION, 100).
init() ->
Preemption =
case application:get_env(erlv8, preemption_ms) of
{ok, V} ->
V;
_ ->
?DEFAULT_PREEMPTION
end,
case os:getenv("ERLV8_SO_PATH") of
false ->
case code:which(erlv8_nif) of
Filename when is_list(Filename) ->
%% io:format("erlv8_nif path:~p~n", [filename:dirname(Filename)]),
%% erlang:load_nif(filename:join([filename:dirname(Filename),"../priv/erlv8_drv"]), Preemption);
erlang:load_nif("./erlv8_drv", Preemption);
Err ->
Err
end;
Path ->
Filename = filename:join([Path,"erlv8_drv"]),
erlang:load_nif(Filename,Preemption)
end.
new_vm() ->
error(not_loaded).
set_server(_VMObject,_Pid) ->
error(not_loaded).
context(_VMObject) ->
error(not_loaded).
new_context(_VMObject) ->
error(not_loaded).
global(_ContextObject) ->
error(not_loaded).
tick(_VMObject, _Ref, _Tick) ->
error(not_loaded).
stop(_VMObject, _Ref) ->
error(not_loaded).