Я играю с boost :: future .then(). Я написал небольшой реактор, который читает файлы асинхронным образом. Существует функция readFileAsync (int fd), которая возвращает будущее для данных из файла. Этот реактор будет считывать до фиксированного количества байтов, когда дескриптор готов и выполнит обещание. Однако я застрял в решении о перезапуске будущего, если из файла может быть больше данных. Для чего это нужно?Можно ли перезапустить boost :: future?
readFileAsync(fd).then([&](auto future) {
auto data = future.get();
if (data.block.empty()) { // end of file
close(data.fd);
} else {
readFileAsync(data.fd).then(...); // XXX: how to work that out?
}
});