Advertisement
Guest User

Untitled

a guest
Mar 25th, 2012
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.33 KB | None | 0 0
  1. template<typename T> class double_buffer {
  2. T buffers[2];
  3. volatile std::size_t index;
  4. public:
  5. double_buffer()
  6. : index(1) {}
  7. T& GetFirst() {
  8. return buffers[index];
  9. }
  10. T& GetSecond() {
  11. return buffers[!index];
  12. }
  13. void flip() {
  14. InterlockedXor(&index, 1);
  15. }
  16. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement