!269 bug fix: write_index bug in rt_ringbuffer_put_force

Merge pull request !269 from arminker/dev-fixbug
This commit is contained in:
bernard 2021-07-30 03:57:43 +00:00 committed by Gitee
commit 08bcc566b7
1 changed files with 3 additions and 1 deletions

View File

@ -8,6 +8,7 @@
* 2012-09-30 Bernard first version. * 2012-09-30 Bernard first version.
* 2013-05-08 Grissiom reimplement * 2013-05-08 Grissiom reimplement
* 2016-08-18 heyuanjie add interface * 2016-08-18 heyuanjie add interface
* 2021-07-20 arminker fix write_index bug in function rt_ringbuffer_put_force
*/ */
#include <rtthread.h> #include <rtthread.h>
@ -138,7 +139,8 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
if (length > space_length) if (length > space_length)
{ {
rb->read_mirror = ~rb->read_mirror; if (rb->write_index <= rb->read_index)
rb->read_mirror = ~rb->read_mirror;
rb->read_index = rb->write_index; rb->read_index = rb->write_index;
} }