-module(global_server). -export([start/0, say/1, say/2, set/1, quit/0, increment/0]). start() -> register(global_server, print_server:start()). send(Message) -> global_server ! Message. say(Value) -> send({say, Value}). say(Label, Value) -> send({say, Label, Value}). set(Fun) -> send({set, Fun}). quit() -> send({quit}). increment() -> send({get, self()}), receive {print_fun, _, Fun} -> set(fun(X) -> Fun(X) + 1 end), true after 3000 -> false end.