1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_COMMON_SHARED_MEMORY_SEQLOCK_BUFFER_H_
6#define CONTENT_COMMON_SHARED_MEMORY_SEQLOCK_BUFFER_H_
7
8#include "content/common/one_writer_seqlock.h"
9
10namespace content {
11
12// This structure is stored in shared memory that's shared between the browser
13// which does the hardware polling, and the consumers of the data,
14// i.e. the renderers. The performance characteristics are that
15// we want low latency (so would like to avoid explicit communication via IPC
16// between producer and consumer) and relatively large data size.
17//
18// Writer and reader operate on the same buffer assuming contention is low, and
19// contention is detected by using the associated SeqLock.
20
21template<class Data>
22class SharedMemorySeqLockBuffer {
23 public:
24  OneWriterSeqLock seqlock;
25  Data data;
26};
27
28}  // namespace content
29
30#endif  // CONTENT_COMMON_SHARED_MEMORY_SEQLOCK_BUFFER_H_
31