This is a minor issue I noticed while debugging an unrelated problem.
ProcessEpoll's eventPool is a static field, so it is shared across all instances. But it is populated inside the ProcessEpoll constructor, which can be called more than once, depending on the number of processing threads. The constructor doesn't check if the pool was already created, so it will create a new pool and overwrite the existing one each time it is invoked.
This should be fixed so the event pool will only be created once. The constructor could check if eventPool != null, or the event pool creation could be moved to a static initializer block.
This is a minor issue I noticed while debugging an unrelated problem.
ProcessEpoll's eventPool is a static field, so it is shared across all instances. But it is populated inside the ProcessEpoll constructor, which can be called more than once, depending on the number of processing threads. The constructor doesn't check if the pool was already created, so it will create a new pool and overwrite the existing one each time it is invoked.
This should be fixed so the event pool will only be created once. The constructor could check if eventPool != null, or the event pool creation could be moved to a static initializer block.