у Вас не будет многих ответов от Вашего PHP в одном запросе сделанными, попытаться собрать все данные, полученные от Вашего дб в переменной. Измените свой код php следующим образом.
header('Content-type: application/json');
$conn = new mysqli('localhost','root','example','tasks');
$stmt = $conn->query("SELECT * FROM task")->fetch_array();
$array = array();
while ($getResults = $stmt->fetch_array())
{
$array[] = $getResults;
}
/* free result set */
mysqli_free_result($getResults);
/* close connection */
mysqli_close($conn);
echo json_encode($getResults);
Отношения
I agree with James. With poll(), you have revents per fd which can easily be checked.
I.e.
struct pollfd fds[NUM_FDS];
int ret, i;
...
ret = poll(fds, NUM_FDS, POLL_TIMEOUT);
for (i = 0; i < NUM_FDS; i++)
if (fds[i].revents & POLLHUP || fds[i].revents & POLLNVAL)
... do something ...
Of course you would not implement it that way in the real world, its just an example. I stopped using select() a long time ago, poll() is a much better interface. You're correct, its just too easy to shoot yourself in the foot with select().
Скорее всего, select
вызывается для закрытого файлового дескриптора.
Обычным источником этого является повторное использование fd_set
без его повторной инициализации.
У вас что-нибудь происходит в обработчиках сигналов? (например, повторно открыть файл журнала на HUP?)
Если вы используете poll (), вы можете просматривать данные и искать, какой из fd дает сбой, что является большим преимуществом.