msg = (buffer->ring)[buffer->next_read];
buffer->ring[buffer->next_read] = NULL;
buffer->next_read = (buffer->next_read + 1) % buffer->size;
msg = (buffer->ring)[buffer->next_read];
buffer->ring[buffer->next_read] = NULL;
buffer->next_read = (buffer->next_read + 1) % buffer->size;