add: if (revents & POLLHUP) { revents |= POLLIN; }
context: RunTask(Task *taskPtr, int revents, Ns_Time *nowPtr){    int i;    if (revents) {    	for (i = 0; i < 3; ++i) {	    if (revents & map[i].event) {	    	Call(taskPtr, map[i].when);	    }    	}    } else if ((taskPtr->flags & TASK_TIMEOUT)		&& Ns_DiffTime(&taskPtr->timeout, nowPtr, NULL) < 0) {	taskPtr->flags &= ~ TASK_WAIT;	Call(taskPtr, NS_SOCK_TIMEOUT);    }}