|
|
- %% Copyright (c) 2017-Present Pivotal Software, Inc. All rights reserved.
- %%
- %% This package, Looking Glass, is double-licensed under the Mozilla
- %% Public License 1.1 ("MPL") and the Apache License version 2
- %% ("ASL"). For the MPL, please see LICENSE-MPL-RabbitMQ. For the ASL,
- %% please see LICENSE-APACHE2.
- %%
- %% This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
- %% either express or implied. See the LICENSE file for specific language governing
- %% rights and limitations of this software.
- %%
- %% If you have any questions regarding licensing, please contact us at
- %% info@rabbitmq.com.
-
- -module(lg_raw_console_tracer).
-
- -export([start_link/2]).
- -export([init/1]).
- -export([loop/1]).
-
- -export([system_continue/3]).
- -export([system_terminate/4]).
- -export([system_code_change/4]).
-
- start_link(_Nth, _Opts) ->
- Pid = proc_lib:spawn_link(?MODULE, init, [self()]),
- {ok, Pid}.
-
- init(Parent) ->
- %% Store all messages off the heap to avoid unnecessary GC.
- process_flag(message_queue_data, off_heap),
- loop(Parent).
-
- loop(Parent) ->
- receive
- {system, From, Request} ->
- sys:handle_system_msg(Request, From, Parent, ?MODULE, [], Parent);
- Msg0 ->
- %% Convert the event's monotonic time to its system time.
- Msg = setelement(3, Msg0, erlang:time_offset(microsecond) + element(3, Msg0)),
- erlang:display(Msg),
- loop(Parent)
- end.
-
- system_continue(_, _, Parent) ->
- loop(Parent).
-
- -spec system_terminate(any(), _, _, _) -> no_return().
- system_terminate(Reason, _, _, _) ->
- exit(Reason).
-
- system_code_change(Misc, _, _, _) ->
- {ok, Misc}.
|