exos v1.0.2 Exos.Proc

Link to this section Summary

Functions

Launch a GenServer which starts a port and proxify cast and call to it using a port protocol with packet: 4, (32bits-length+data) messages are transmitted throught stdin/out. Input terms are encoded using binary_to_term and received terms are decoded using term_to_binary

Link to this section Functions

Link to this function start_link(cmd, init, opts \\ [], link_opts \\ [], event_manager \\ nil)

Launch a GenServer which starts a port and proxify cast and call to it using a port protocol with packet: 4, (32bits-length+data) messages are transmitted throught stdin/out. Input terms are encoded using binary_to_term and received terms are decoded using term_to_binary.

  • cmd is the shell command to launch the port
  • when the port starts, it automatically receives as first message the init term if init !== :no_init
  • opts are options for Port.open (for instance [cd: "/path/"])
  • link_opts are options for GenServer.start_link (for instance [name: :servername])
  • messages received from the port outside of a GenServer.call context are sent to the event_manager GenEvent if it is not nil
  • to allow easy supervision, if the port die with a return code == 0, then the GenServer die with the reason :normal, else with the reason :port_terminated