The connection request thread adds sockets to a select list unless
the cr->socket is invalid and the cr request state is set to destroy. If the
cr->socket is invalid, but the cr->state is not destroy, then the cr->socket
is added to an FD set for select/poll. This results in select/poll
returning an error when select is called. As a result, the cr thread never
actually blocks during this state.
Fix this by only destroying a cr based on its state being set to destroy
and skip adding cr->sockets to the FD set when they are invalid.