code: func NewProcessManager() *ProcessManager {
  	// We use pseudo PIDs that don't conflict with OS PIDs, so they can live in the same table.
  	// For the pseudo PIDs, we use a sync.Pool rather than a plain old counter to avoid the unlikely,
  	// but possible wrapping should such a counter exceed MaxInt64.
  	pid := int64(32768) // TODO: /proc/sys/kernel/pid_max
  
  	return &ProcessManager{
  		expire:  time.Minute * 5,
  		entries: make(map[int64]*Process),
  		pids: sync.Pool{
  			New: func() interface{} {
  				return atomic.AddInt64(&pid, 1)
  			},
  		},
  	}
  }
docs: // NewProcessManager creates a new ProcessManager instance.