Do we need the complication of multiple CSocketEpollThreads?  I think this was in the select handler case because windows only has small select lists (64) because of problems with the select implementation.  I don't think epoll has any similar limitations (does it?).

If so, most of this code would be simpler.