From a436d32d64aa2a5a161e6346ef1c92ca56505d87 Mon Sep 17 00:00:00 2001 From: lijie <1713699517@qq.com> Date: Wed, 15 Jun 2022 15:46:11 +0800 Subject: [PATCH 1/4] =?UTF-8?q?ft:=20=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test.erl | 50 ++++++++++++++++++++++++++++++++++++++++ src/timerWork/gtWork.erl | 9 ++++---- 2 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 src/test.erl diff --git a/src/test.erl b/src/test.erl new file mode 100644 index 0000000..527ec0a --- /dev/null +++ b/src/test.erl @@ -0,0 +1,50 @@ +-module(test). + +-compile([export_all]). + +timer(_, _) -> + % I = atomics:add_get(persistent_term:get(cnt), 1, 1), + %io:format("IMY******* ~p~n", [I]) , + % case I of + % 1000000 -> + % io:format("end time ~p ~n", [erlang:system_time(millisecond)]); + % _ -> + % ignore + % end, + ok. + +test(N, Time) -> + io:format("start time1 ~p ~n", [erlang:system_time(millisecond)]), + % persistent_term:put(cnt, atomics:new(1, [])), + gTimer:startWork(16), + doTest(N, Time). + +doTest(0, Time) -> + io:format("start time2 ~p ~n", [erlang:system_time(millisecond)]), + gTimer:setTimer(rand:uniform(Time), {?MODULE, timer, []}); +doTest(N, Time) -> + gTimer:setTimer(rand:uniform(Time), {?MODULE, timer, []}), + doTest(N - 1, Time). + +timer(_) -> + %io:format("IMY******* ~p~n", [I]) , + % case I of + % 1000000 -> + % io:format("end time ~p ~n", [erlang:system_time(millisecond)]); + % _ -> + % ignore + % end, + ok. + +test2(N, Time) -> + io:format("start time1 ~p ~n", [erlang:system_time(millisecond)]), + doTest2(N, Time). + +doTest2(0, Time) -> + io:format("start time2 ~p ~n", [erlang:system_time(millisecond)]), + zm_dtimer:set({game, 0}, {?MODULE, timer, []}, {time, rand:uniform(Time), 6000}); +doTest2(N, Time) -> + zm_dtimer:set({game, N}, {?MODULE, timer, []}, {time, rand:uniform(Time), 6000}), + doTest2(N - 1, Time). + + diff --git a/src/timerWork/gtWork.erl b/src/timerWork/gtWork.erl index 3a4d0a7..ed32e54 100644 --- a/src/timerWork/gtWork.erl +++ b/src/timerWork/gtWork.erl @@ -35,10 +35,11 @@ handleCast(_Msg, _State) -> handleInfo({timeout, TimerRef, MFA}, _State) -> %% 确认Msg格式 然后做分发处理 {M, F, A} = MFA, - try M:F(A, TimerRef) - catch C:R -> - error_logger:error_msg("gTimer timeout error MFA:~p C:~p R:~p~n", [MFA, C, R]) - end, + spawn(M, F, [A, TimerRef]), + % try M:F(A, TimerRef) + % catch C:R -> + % error_logger:error_msg("gTimer timeout error MFA:~p C:~p R:~p~n", [MFA, C, R]) + % end, kpS; handleInfo(_Msg, _State) -> kpS. From 85233784856ad6bbfd77227cd4aadf80e779398d Mon Sep 17 00:00:00 2001 From: lijie <1713699517@qq.com> Date: Wed, 15 Jun 2022 15:46:47 +0800 Subject: [PATCH 2/4] =?UTF-8?q?ft:=20=E5=88=A0=E9=99=A4=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test.erl | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 src/test.erl diff --git a/src/test.erl b/src/test.erl deleted file mode 100644 index 527ec0a..0000000 --- a/src/test.erl +++ /dev/null @@ -1,50 +0,0 @@ --module(test). - --compile([export_all]). - -timer(_, _) -> - % I = atomics:add_get(persistent_term:get(cnt), 1, 1), - %io:format("IMY******* ~p~n", [I]) , - % case I of - % 1000000 -> - % io:format("end time ~p ~n", [erlang:system_time(millisecond)]); - % _ -> - % ignore - % end, - ok. - -test(N, Time) -> - io:format("start time1 ~p ~n", [erlang:system_time(millisecond)]), - % persistent_term:put(cnt, atomics:new(1, [])), - gTimer:startWork(16), - doTest(N, Time). - -doTest(0, Time) -> - io:format("start time2 ~p ~n", [erlang:system_time(millisecond)]), - gTimer:setTimer(rand:uniform(Time), {?MODULE, timer, []}); -doTest(N, Time) -> - gTimer:setTimer(rand:uniform(Time), {?MODULE, timer, []}), - doTest(N - 1, Time). - -timer(_) -> - %io:format("IMY******* ~p~n", [I]) , - % case I of - % 1000000 -> - % io:format("end time ~p ~n", [erlang:system_time(millisecond)]); - % _ -> - % ignore - % end, - ok. - -test2(N, Time) -> - io:format("start time1 ~p ~n", [erlang:system_time(millisecond)]), - doTest2(N, Time). - -doTest2(0, Time) -> - io:format("start time2 ~p ~n", [erlang:system_time(millisecond)]), - zm_dtimer:set({game, 0}, {?MODULE, timer, []}, {time, rand:uniform(Time), 6000}); -doTest2(N, Time) -> - zm_dtimer:set({game, N}, {?MODULE, timer, []}, {time, rand:uniform(Time), 6000}), - doTest2(N - 1, Time). - - From 4d83c93cc4bbde64649a9261ef8349967cb333a0 Mon Sep 17 00:00:00 2001 From: SisMaker <156736github> Date: Tue, 21 Jun 2022 20:49:37 +0800 Subject: [PATCH 3/4] =?UTF-8?q?ft=EF=BC=9A=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gTimer.erl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/gTimer.erl b/src/gTimer.erl index ce39f55..5b90143 100644 --- a/src/gTimer.erl +++ b/src/gTimer.erl @@ -9,7 +9,8 @@ , setTimer/2 , setTimer/3 , getTimer/1 - , delTimer/1 + , asyncDelTimer/1 + , syncDelTimer/1 ]). timerName(Idx) -> @@ -51,6 +52,10 @@ setTimer(Time, MFA, Strategy) -> getTimer(TimerRef) -> erlang:read_timer(TimerRef). --spec delTimer(TimerRef :: reference()) -> false | non_neg_integer(). -delTimer(TimerRef) -> - erlang:cancel_timer(TimerRef) . \ No newline at end of file +-spec asyncDelTimer(TimerRef :: reference()) -> false | non_neg_integer(). +asyncDelTimer(TimerRef) -> + erlang:cancel_timer(TimerRef, [{async, true} | {info, false}]). + +-spec syncDelTimer(TimerRef :: reference()) -> false | non_neg_integer(). +syncDelTimer(TimerRef) -> + erlang:cancel_timer(TimerRef). \ No newline at end of file From 5b0816b380ff09b1aefede29a558e886fc35d83d Mon Sep 17 00:00:00 2001 From: SisMaker <156736github> Date: Tue, 21 Jun 2022 20:54:34 +0800 Subject: [PATCH 4/4] =?UTF-8?q?ft=EF=BC=9A=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gTimer.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gTimer.erl b/src/gTimer.erl index 5b90143..4f60551 100644 --- a/src/gTimer.erl +++ b/src/gTimer.erl @@ -54,7 +54,7 @@ getTimer(TimerRef) -> -spec asyncDelTimer(TimerRef :: reference()) -> false | non_neg_integer(). asyncDelTimer(TimerRef) -> - erlang:cancel_timer(TimerRef, [{async, true} | {info, false}]). + erlang:cancel_timer(TimerRef, [{async, true}, {info, false}]). -spec syncDelTimer(TimerRef :: reference()) -> false | non_neg_integer(). syncDelTimer(TimerRef) ->