进出入完善组织机构并加入导入人员和机构功能
554325746@qq.com
2019-08-07 07a66e53d2b4126c2004870d81a379d8ef0071da
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
-module(glc_run).
 
-export([execute/2]).
 
-ifdef(erlang18).
-define(time_now(), erlang:monotonic_time()).
-define(time_diff(T1, T2), erlang:convert_time_unit(T2 - T1, native, micro_seconds)).
-else.
-define(time_now(), os:timestamp()). 
-define(time_diff(T1, T2), timer:now_diff(T2, T1)). 
-endif.
 
execute(Fun, [Event, Store]) ->
    T1 = ?time_now(),
    case (catch Fun(Event, Store)) of
        {'EXIT', {Reason, _ST}} ->
            T2 = ?time_now(),
            {?time_diff(T1, T2), {error, Reason}};
        {'EXIT', Reason} ->
            T2 = ?time_now(),
            {?time_diff(T1, T2), {error, Reason}};
        Else -> 
            T2 = ?time_now(),
            {?time_diff(T1, T2), Else}
    end.