mergefailure / ets-give-away

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EtsGive

Inspiration

https://github.com/DeadZen/etsgive

$ iex -S mix 
iex(2)> EtsGive.Server.check
:ok
iex(3)> table id: EtsGive.Manager, data: [count: 0]
:ok
iex(8)> EtsGive.Server.inc
Counter: 1
:ok
iex(9)> EtsGive.Server.inc
:ok
Counter: 2
iex(10)> EtsGive.Server.inc
Counter: 3
:ok

Kill the server

iex(11)> EtsGive.Server.die 
11:25:57.367 [error] GenServer EtsGive.Server terminating
** (stop) killed
    (etsgive) lib/etsgive/server.ex:43: EtsGive.Server.handle_cast/2
    (stdlib) gen_server.erl:637: :gen_server.try_dispatch/4
    (stdlib) gen_server.erl:711: :gen_server.handle_msg/6
    (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3
Last message: {:"$gen_cast", :die}
State: %EtsGive.Server.State{table_id: EtsGive.Manager}
Warning table id: EtsGive.Manager, Owner Pid: #PID<0.176.0>, server (#PID<0.176.0>) => manager(#PID<0.177.0>) handing table id EtsGive.Manager
Server !! is now dead, farewell table id EtsGive.Manager
manager(#PID<0.177.0>) -> server(#PID<0.186.0>), getting table id EtsGive.Manager
nil

Wait a second for transfer to complete, then fetch the count

iex(13)> EtsGive.Server.count() 
:3

About


Languages

Language:Elixir 100.0%