func (c *Child) Reload() error {
	if c.reloadSignal == nil {
		log.Printf("[INFO] (child) restarting process")

		// Take a full lock because start is going to replace the process. We also
		// want to make sure that no other routines attempt to send reload signals
		// during this transition.
		c.Lock()
		defer c.Unlock()

		c.kill()
		return c.start()
	}

	log.Printf("[INFO] (child) reloading process")

	// We only need a read lock here because neither the process nor the exit
	// channel are changing.
	c.RLock()
	defer c.RUnlock()

	return c.reload()
}
func (c *Child) Reload() error {
	if c.reloadSignal == nil {
		log.Printf("[INFO] (child) restarting process")

		// Take a full lock because start is going to replace the process. We also
		// want to make sure that no other routines attempt to send reload signals
		// during this transition.
		c.Lock()
		defer c.Unlock()

		c.kill()
		return c.start()
	}

	log.Printf("[INFO] (child) reloading process")

	// We only need a read lock here because neither the process nor the exit
	// channel are changing.
	c.RLock()
	defer c.RUnlock()

	return c.reload()
}
func ( c * Child ) Reload ( ) error { if c . reloadSignal == nil { log . Printf ( " " ) // Take a full lock because start is going to replace the process. We also // want to make sure that no other routines attempt to send reload signals // during this transition. c . Lock ( ) defer c . Unlock ( ) c . kill ( ) return c . start ( ) } log . Printf ( " " ) // We only need a read lock here because neither the process nor the exit // channel are changing. c . RLock ( ) defer c . RUnlock ( ) return c . reload ( ) }
// Reload sends the reload signal to the child process and does not wait for a
// response. If no reload signal was provided, the process is restarted and
// replaces the process attached to this Child.
Reload sends the reload signal to the child process and does not wait for a response . If no reload signal was provided the process is restarted and replaces the process attached to this Child .