|
если wr=1 а rd=0 то размер буфера равен
size = SIZE - (1 - 0);
size = SIZE - 1;
но если rd=SIZE-1, a wr=0 (переполнение)
то размер буфера равен
size = SIZE - (0 - (SIZE-1) + 0);
size = SIZE - (-SIZE+1);
size = SIZE + SIZE-1;
size=2SIZE-1;
а в случае если
size = SIZE - (0 - (SIZE-1-0));
size = SIZE - (-SIZE+1);
size = SIZE +SIZE-1;
size=2SIZE+1
то есть баг проявится при первом же переполнении буфера.
E-mail: info@telesys.ru