@swesterfeld commented on this pull request.
> + * implemented by two index variables (read_frame_pos and write_frame_pos) + * for which atomic integer reads and writes are required. Since the + * producer thread only modifies the write_frame_pos and the consumer thread + * only modifies the read_frame_pos, no compare-and-swap or similar + * operations are needed to avoid concurrent writes. + */ +template<class T> +class FrameRingBuffer { + //BIRNET_PRIVATE_COPY (FrameRingBuffer); +private: + vector<vector<T> > channel_buffer_; + std::atomic<int> atomic_read_frame_pos_; + std::atomic<int> atomic_write_frame_pos_; + uint channel_buffer_size_; // = n_frames + 1; the extra frame allows us to + // see the difference between an empty/full ringbuffer + uint n_channels_;
Done.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.