marked all ringbuffer members volatile