Цитата(DASM @ Sep 13 2013, 17:35)

На самом деле в эмбеддед всякие alloc штука хорошая, только вот стандартный менджер не шибко хорош, можно попасть на фрагментацию памяти, в пределе до идиотизма , когда свободна половина, а два байта не выделить . Тут лучше упрощенный менеджер с аллокациями пулов фиксированного (обычно кратного степени двойки) кусками. И чего это стеку вдруг беспредельничать ?
Я в подобных случаях поступал следующим образом:
создавал на оставшуюся свободной области памяти массив элементов. Размер элемента равен максимально возможному сообщению. Далее создавал функции для запроса элемента и возвращения элемента. Все элементы имели заголовок для соединения их в односвязные списки. Пул свободных элементов тоже был оформлен как список.
Забавная история спучилась с Микрочипом. Компилятор молча укоротил мой массив до конца страницы адреса. В Микрочипе страничная адресация это бич. За что я люблю aтмелевские процессоры -- они свободны от этого нонсенса.
Цитата(DASM @ Sep 13 2013, 18:01)

Причем тут рекурсия вообще ? Данные принимаются в буфер, не важно один ли он, или два с очередью, в куче ли, на стеке ли - главное что они предсказумы. Непредсказуемая может быть рекурсия, но никак не прием информации
Приведите мне сценарий решения задачи, поставленной demiurg_spb в случае с затыком выходного потока. При условии, что буферы берутся на стеке.
Цитата
Приходят пакеты из одно порта и ретранслируются в другой (по разным протоколам).
...... Вдруг выходной канал отваливается, а на входе поток не прерываем (так случилось).