summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrtthread-bot <[email protected]>2021-07-30 16:26:31 +0000
committerrtthread-bot <[email protected]>2021-07-30 16:26:31 +0000
commit26acd64cb1f215bcf2d5b644f18c25c6a69aecd1 (patch)
tree3708fbfbf6295a5ec8a9eb83188666db173da206
parentd57caa7e157dcdfe6fe3fbc238df20889627b503 (diff)
parent08bcc566b7bc2ece9a25a9cd76709c96a5437857 (diff)
Merge remote-tracking branch 'rtt_gitee/gitee_master'
-rw-r--r--components/drivers/src/ringbuffer.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/components/drivers/src/ringbuffer.c b/components/drivers/src/ringbuffer.c
index 29de20b087..f01a594609 100644
--- a/components/drivers/src/ringbuffer.c
+++ b/components/drivers/src/ringbuffer.c
@@ -8,6 +8,7 @@
* 2012-09-30 Bernard first version.
* 2013-05-08 Grissiom reimplement
* 2016-08-18 heyuanjie add interface
+ * 2021-07-20 arminker fix write_index bug in function rt_ringbuffer_put_force
*/
#include <rtthread.h>
@@ -138,7 +139,8 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
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;
}