掲載時のコードに対して、バッファの読み書きが重ならないように read_buf_selectorをグローバルにしてリードライト互いに反転させることで、多少の頑強さを加えていますが、時間経過に伴いリードライトの歩調が合わなくなる可能性は変わりません。
read_buf_selector