The CBUFF semantic is changed so that the first
(re-)attached reader is supplied by all messages
held in buffer during time when no reader is attached.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
put_info->msg_head->flags|=flags;
if(buff->state->readers>0)
put_info->msg_head->flags+=buff->state->readers;
put_info->msg_head->flags|=flags;
if(buff->state->readers>0)
put_info->msg_head->flags+=buff->state->readers;
+ else if (buff->state->readers==0)
+ put_info->msg_head->flags+=1;
put_info->msg_head->length=length;
put_info->msg_head->length=length;
ul_cbuff_state_t *state=buff->state;
ul_cbuff_msg_head_t *msg_head;
ul_cbuff_state_t *state=buff->state;
ul_cbuff_msg_head_t *msg_head;
- msg_head=(ul_cbuff_msg_head_t *)(buff->buff_start+state->head);
+ if(state->readers>0)
+ msg_head=(ul_cbuff_msg_head_t *)(buff->buff_start+state->head);
+ else if(state->readers==0)
+ msg_head=(ul_cbuff_msg_head_t *)(buff->buff_start+state->lasttail);
if(state->readers>=0)
state->readers++;
tail_info->msg_head=msg_head;
if(state->readers>=0)
state->readers++;
tail_info->msg_head=msg_head;