public function remove(ProcessDetails $processDetails) {
		$pid = $processDetails->getPid();

		if ($this->hasProcess($pid) === FALSE) {
			throw new \InvalidArgumentException(sprintf('Could not remove process. Process (%d) not in list.', $processDetails->getPid()), 1400761297);
		}

		if (isset($this->freeProcessIds[$pid])) {
			unset($this->freeProcessIds[$pid]);
		}

		if (isset($this->sockets[$pid])) {
			unset($this->sockets[$pid]);
		}

		unset($this->processDetails[$pid]);

		return $this;
	}