Last Update: Fri Nov 12 12:27:06 MST 2004

the Slave class forks a process and starts a drb server in the child using any object as the server. the process is detached so it is not required (nor possible) to wait on the child pid. a Heartbeat is set up between the parent and child processes so that the child will exit of the parent exits for any reason - preventing orphaned slaves from running indefinitely. the purpose of Slaves is to be able to easily set up a collection of objects communicating via drb protocols instead of having to use IPC.

typical usage:

  obj = AnyClass::new

  slave = Slave::new obj

  p slave.object                  # handle on drb object
  p slave.uri                     # uri of the drb object
  p slave.socket                  # unix domain socket path for drb object
  p slave.psname                  # title shown in ps/top

other usage:

set the pulse_rate used for the Heartbeat

  slave = Slave::new MyClass::new, 'pulse_rate' => 10


  Slave::pulse_rate = 10
  slave = Slave::new MyClass::new


  slave = Slave::new MyClass::new

slaves may be configured via the environment, the Slave class, or via the ctor for object itself. attributes which may be configured include

  • socket_creation_attempts
  • pulse_rate
  • psname
  • debug