fix and performance improvement

fix: if poll is emptied before offer gets full => race condition
improvement: element can be exchanged via volatile, without need for
array, faster when both producer and consumer are at same speed and when
buffers are empty.