
Elixir Cookbook
By :

Our server implementation lacks a few things. How to stop it gracefully and how to upgrade its code?
Our current implementation (right below the ## Callbacks (Server API)
comment) has three of the six callbacks that form the GenServer base skeleton. The ones missing are handle_info/2
, terminate/2
, and code_change/3
.
We will be implementing all of these functions in this recipe.
The GenServer provides default implementations for all :gen_server
callbacks. This is the reason we can get away without having to define all of them explicitly, like we did in Erlang.
To start, we need to load the connection_tracker.ex
module in a code editor.
We will follow these steps to implement the functions and make our server a full-blown GenServer:
Implement the handle_info/2
function:
def handle_info(info, state) do IO.puts("Received info message #{inspect(info)}") {:noreply, state} end
Implement the terminate/2
function:
def terminate(reason, state) do IO...
Change the font size
Change margin width
Change background colour