-
- можно и так, но я не стал использовать этот сервис операционки. У меня связные списки по степени 2-ки. За все приходится платить, за отсутствие сегментации плата возможно большим размером кучи. abivan(145 знак., 18.06.2018 12:04)
- Это возможно только при блоках одинакового размера, или нет? - Andreas(18.06.2018 11:50)
- Если блоки писать в кольцо строго последовательно и читать (удалять) тоже строго последовательно, то не будет сегментации и при переменном размере пакета. - Nikolay_Po(18.06.2018 12:41)
- Что-то подобное использовал в одной из железяк, пока не ушел на POSIX lloyd(91 знак., 18.06.2018 13:28)
- Почему? Ведь другие задачи тоже выделяют/освобождают память в это время. - Andreas(18.06.2018 12:57)
- Здесь речь не идёт об общей куче, речь о выделенном буфере пакетов. Для предсказуемости поведения железа, лучше не сваливать всё в "кучу". - Nikolay_Po(19.06.2018 15:51 - 15:58)
- Да, подразумеваются блоки одинакового размера. Блоки переменного размера, в принципе, возможны (замените выделение из пула на потокобезопасный malloc/free), но это кошмар для эмбеддеда, ибо фрагментация кучи и источник трудноуловимых багов и lloyd(27 знак., 18.06.2018 11:53)
- upd простите ошибся адресатом =) Ralex(217 знак., 18.06.2018 11:57 - 12:13)
- Ну тогда это и есть обычный кольцевой буфер, только не с байтиками, а с указателями. Обычное решение, особенно при передаче блоков данных с фиксированной или почти длинной. - Andreas(18.06.2018 12:00)
- Если блоки писать в кольцо строго последовательно и читать (удалять) тоже строго последовательно, то не будет сегментации и при переменном размере пакета. - Nikolay_Po(18.06.2018 12:41)