ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
339192 Топик полностью
bialix (06.07.2012 17:00, просмотров: 437) ответил Vit на Я делаю иначе:)
ну собственно такой подход я и упоминал в своей портянке. Он понятен, но как по мне слишком уж низкоуровневый. Слишком много надо писать вспомогательной мишуры, которая отвлекает от основной идеи алгоритма. Вот как я хотел бы упростить вашу main_foo в своем гипотетическом велосипеде: void main_foo(void){ ... ASYNC_CALL(async_func0); // will wait till done ... TRY_ASYNC(ad finitum) ASYNC_CALL(async_func1) DO on OK: pass; on ERR: pass; on TIMEOUT: raise "timeout!!!! oh my god!!!!" END_ASYNC } Ну чисто чтобы выкинуть вот эти все явные while, do-while, которые то и нужны только чтобы имитировать главный цикл кооперативной оси. Надеюсь идея в моем синтетическом примере хоть немного просматривается.