Re[14]: asio готовится к принятию в стандарт?
От: Evgeny.Panasyuk Россия  
Дата: 27.04.15 09:49
Оценка:
Здравствуйте, uzhas, Вы писали:

J>>Ну так тогда придется где-то хранить эти хэндлы, так что тот же гемор, вид сбоку

U>это не вид сбоку, это доп. рычаг, который позволяет в другой манере работать с теми же вещами. и может гораздо проще решить проблему fdn721
U>это все равно, что отождествить все языки программирования "они же все эквивалентны машине Тьюринга". хотя разные языки одну и ту же задачу могут решать по-разному в плане перформанса, простоты кода\сопровождения и тд.

Покажи как бы выглядел код использующий Asio с этими хэндлерами.

J>>Далее, зачем обязательно убивать сокет явно? Достаточно хранить его в любом умном указателе и передавать явно в континуацию. Тогда при закрытии сокета в континуацию придет operation_aborted — ты в результате просто не поставишь в очередь очередную континуацию (которая держала бы сокет на плаву), и сокет мирно помрет сам вместе с указателем.

U>работа с внешними ресурсами часто требует полного и явного контроля.

Часто нужен не явный контроль, а всего лишь prompt finalization, который прекрасно обеспечивается RAII.

U>если говорить о сокетах, то иногда нужно явно освободить порт. полагаться на shared_ptr я бы не стал из-за непредсказуемости кол-ва владельцев


Не надо раздавать shared_ptr кому попало.

U>(более точно из-за непредсказуемости момента уничтожения захваченного объекта)


Если в какой-то точке программы (в другом потоке?) нужно дождаться момента разрушения какого-то объекта, то необходимо делать блокирующее ожидание.

U>обычно переводят, как "продолжение".

U>у слова "функция" и "процедура" тоже много значений в русском языке, главное — привыкнуть
U>но в данном контексте все же это слово не следует употреблять, у него несколько другое значение : http://en.wikipedia.org/wiki/Continuation

Ты ссылаешься на то continuation, которое подразумевается в call-with-current-continuation. Есть же второе значение, которое в подразумевается в continuation-passing style.
Тем не менее эти значения очень близки. Я бы даже сказал что это не разные значения continuation, а само понятие continuation более общее, которое и покрывает эти оба конкретных случая — CPS или call/cc.

U>в данном случае мы все же работаем с async method handler, то есть с обработчиками асинхронных операций, которые в свою очередь часто являются замыканиями ( http://en.wikipedia.org/wiki/Closure_(computer_programming) ) имхо


Продолжения тоже часто являются замыканиями.
Я считаю что вполне уместно называть хэндлер асихнронной операции продолжением — это уже устоявшаяся практика.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.