<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://elixirblocks.com/index.php?action=history&amp;feed=atom&amp;title=Genserver</id>
	<title>Genserver - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://elixirblocks.com/index.php?action=history&amp;feed=atom&amp;title=Genserver"/>
	<link rel="alternate" type="text/html" href="http://elixirblocks.com/index.php?title=Genserver&amp;action=history"/>
	<updated>2026-04-19T03:17:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://elixirblocks.com/index.php?title=Genserver&amp;diff=1914&amp;oldid=prev</id>
		<title>Admin at 02:36, 28 November 2025</title>
		<link rel="alternate" type="text/html" href="http://elixirblocks.com/index.php?title=Genserver&amp;diff=1914&amp;oldid=prev"/>
		<updated>2025-11-28T02:36:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://elixirblocks.com/index.php?title=Genserver&amp;amp;diff=1914&amp;amp;oldid=1847&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://elixirblocks.com/index.php?title=Genserver&amp;diff=1847&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;mix new App --sup   &lt;b&gt;app/lib/app.ex&lt;/b&gt;  &lt;source&gt; defmodule App.Service do   use GenServer    def start_link(state) do     GenServer.start_link(__MODULE__, state, name: __MODULE__)   end    def init(state) do      {:ok, state}   end    def get_state(pid) do      GenServer.call(pid, :get_state)   end    def set_state(pid,state) do      GenServer.call(pid, {:set_state, state})   end     def handle_call(:get_state, _from, state) do      {:reply, state, state}   end     de...&quot;</title>
		<link rel="alternate" type="text/html" href="http://elixirblocks.com/index.php?title=Genserver&amp;diff=1847&amp;oldid=prev"/>
		<updated>2024-06-30T06:21:57Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;mix new App --sup   &amp;lt;b&amp;gt;app/lib/app.ex&amp;lt;/b&amp;gt;  &amp;lt;source&amp;gt; defmodule App.Service do   use GenServer    def start_link(state) do     GenServer.start_link(__MODULE__, state, name: __MODULE__)   end    def init(state) do      {:ok, state}   end    def get_state(pid) do      GenServer.call(pid, :get_state)   end    def set_state(pid,state) do      GenServer.call(pid, {:set_state, state})   end     def handle_call(:get_state, _from, state) do      {:reply, state, state}   end     de...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;mix new App --sup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;app/lib/app.ex&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
defmodule App.Service do&lt;br /&gt;
  use GenServer&lt;br /&gt;
&lt;br /&gt;
  def start_link(state) do&lt;br /&gt;
    GenServer.start_link(__MODULE__, state, name: __MODULE__)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def init(state) do&lt;br /&gt;
     {:ok, state}&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def get_state(pid) do&lt;br /&gt;
     GenServer.call(pid, :get_state)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def set_state(pid,state) do&lt;br /&gt;
     GenServer.call(pid, {:set_state, state})&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def handle_call(:get_state, _from, state) do&lt;br /&gt;
     {:reply, state, state}&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  def handle_call({:set_state, new_state}, _from, state)do&lt;br /&gt;
    {:reply,state,[new_state | state]}&lt;br /&gt;
  end&lt;br /&gt;
   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
defmodule App.Supervisor do&lt;br /&gt;
  use Supervisor&lt;br /&gt;
&lt;br /&gt;
  def start do&lt;br /&gt;
    Supervisor.start_link(__MODULE__, [])&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def init(_) do&lt;br /&gt;
     children = [&lt;br /&gt;
      {App.Service,[]}&lt;br /&gt;
     ]&lt;br /&gt;
  Supervisor.init(children, strategy: :one_for_one)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# App.Supervisor.start()&lt;br /&gt;
# # IO.inspect x&lt;br /&gt;
&lt;br /&gt;
# pid = Process.whereis(App.Service)&lt;br /&gt;
&lt;br /&gt;
# # The follwing is nil&lt;br /&gt;
# IO.inspect pid  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Process.exit(pid, :kill)&lt;br /&gt;
# IO.inspect &amp;quot;______________&amp;quot;&lt;br /&gt;
# pid = Process.whereis(App.Service)&lt;br /&gt;
# # IO.inspect &amp;quot;_____&amp;quot;&lt;br /&gt;
# IO.inspect Process.whereis(App.Service)&lt;br /&gt;
&lt;br /&gt;
# App.Service.get_state(pid)&lt;br /&gt;
# App.Service.set_state(pid, &amp;quot;we are the world&amp;quot;)&lt;br /&gt;
# App.Service.set_state(pid, &amp;quot;hurrrray&amp;quot;)&lt;br /&gt;
# IO.inspect App.Service.get_state(pid)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;mix.exs&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
defmodule App.MixProject do&lt;br /&gt;
  use Mix.Project&lt;br /&gt;
&lt;br /&gt;
  def project do&lt;br /&gt;
    [&lt;br /&gt;
      app: :app,&lt;br /&gt;
      version: &amp;quot;0.1.0&amp;quot;,&lt;br /&gt;
      elixir: &amp;quot;~&amp;gt; 1.14&amp;quot;,&lt;br /&gt;
      start_permanent: Mix.env() == :prod,&lt;br /&gt;
      deps: deps()&lt;br /&gt;
    ]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Run &amp;quot;mix help compile.app&amp;quot; to learn about applications.&lt;br /&gt;
  def application do&lt;br /&gt;
    [&lt;br /&gt;
      extra_applications: [:logger],&lt;br /&gt;
      mod: {App.Application, []}&lt;br /&gt;
    ]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Run &amp;quot;mix help deps&amp;quot; to learn about dependencies.&lt;br /&gt;
  defp deps do&lt;br /&gt;
    [&lt;br /&gt;
      # {:dep_from_hexpm, &amp;quot;~&amp;gt; 0.3.0&amp;quot;},&lt;br /&gt;
      # {:dep_from_git, git: &amp;quot;https://github.com/elixir-lang/my_dep.git&amp;quot;, tag: &amp;quot;0.1.0&amp;quot;}&lt;br /&gt;
    ]&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;application.exs&amp;lt;b/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
defmodule App.Application do&lt;br /&gt;
  # See https://hexdocs.pm/elixir/Application.html&lt;br /&gt;
  # for more information on OTP Applications&lt;br /&gt;
  @moduledoc false&lt;br /&gt;
&lt;br /&gt;
  use Application&lt;br /&gt;
&lt;br /&gt;
  @impl true&lt;br /&gt;
  def start(_type, _args) do&lt;br /&gt;
    children = [&lt;br /&gt;
      # Starts a worker by calling: App.Worker.start_link(arg)&lt;br /&gt;
      {App.Service, []}&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    opts = [strategy: :one_for_one, name: App.Supervisor]&lt;br /&gt;
    Supervisor.start_link(children, opts)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>