ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
1012946 Топик полностью
abivan (18.06.2020 15:54, просмотров: 748) ответил fk0 на Тут есть принципиальная проблема, даже две, на шагах 2 и 8: ожидать факта освобождения памяти в буфере может одновременно *несколько* потоков. Пробудить ты должен один или все -- зависит от стратегии... И одновременно с пробуждением поток должен захватить мьютекс для операций с буфером. Кольцевой буфер существует как раз чтоб предельно ускорить и упростить аллокацию -- других аллокаций не нужно. Ну и раз ты использовал готовую очередь, то к чему тогда вообще буфер?
пробуждать поток будет ось в зависимости от приоритета. мьютекс мне не нужен, ос очередью рулит. 

Кольцевой буфер может и не нужен, но тогда в зависимости от загруженности канала передачи я не могу менять размер очереди, а размер буфера могу realloc

в кольцевом буфере хранятся только указатели. Значит освобождение памяти будет осуществлять задача уарт