-
- а если было переполнение? Так сказать, Всемирный Потоп - IBAH(24.10.2024 20:01)
- Дык нельзя впихнуть невпихуемое. Поясните. - reZident(24.10.2024 20:02)
- Например для размера буфера кратного степени 2
Kolvo=RazmerBufferTX-((TxHead-TxTail)&(RazmerBufferTX-1));
равно RazmerBufferTX как при полностью пустом буфере так и
полностью полном. Эти две ситуации равнозначные их допускать
нельзя. То есть в буфере всегда должно быть не больше
(RazmerBufferTX-1) - IBAH(24.10.2024 20:12)
- Опять не понял. Для кольцевого буфера указатель (индекс) и кол-во элементов в буфере должны быть разными переменными. Правда, тут иногда встают грабли с атомарностью
одновременных операций чтения и записи, но то такэ - решаемо. - reZident(24.10.2024 21:14)
- Чем решать такие проблемы, проще считать что в буфере на один байт
меньше. - IBAH(24.10.2024 22:12)
- Я для себя так же поступаю, один элемент жертвую на удобство использования - AlexBi(24.10.2024 22:26)
- Чем решать такие проблемы, проще считать что в буфере на один байт
меньше. - IBAH(24.10.2024 22:12)
- Опять не понял. Для кольцевого буфера указатель (индекс) и кол-во элементов в буфере должны быть разными переменными. Правда, тут иногда встают грабли с атомарностью
одновременных операций чтения и записи, но то такэ - решаемо. - reZident(24.10.2024 21:14)
- Например для размера буфера кратного степени 2
Kolvo=RazmerBufferTX-((TxHead-TxTail)&(RazmerBufferTX-1));
равно RazmerBufferTX как при полностью пустом буфере так и
полностью полном. Эти две ситуации равнозначные их допускать
нельзя. То есть в буфере всегда должно быть не больше
(RazmerBufferTX-1) - IBAH(24.10.2024 20:12)
- Дык нельзя впихнуть невпихуемое. Поясните. - reZident(24.10.2024 20:02)
- а если было переполнение? Так сказать, Всемирный Потоп - IBAH(24.10.2024 20:01)