Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Unified Diff: gpu/command_buffer/service/framebuffer_completeness_cache.h

Issue 1278333003: Fix crash caused by concurrent access to framebuffer_combo_complete_map_. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments; return unittesting of cache behaviour. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/framebuffer_completeness_cache.h
diff --git a/gpu/command_buffer/service/framebuffer_completeness_cache.h b/gpu/command_buffer/service/framebuffer_completeness_cache.h
new file mode 100644
index 0000000000000000000000000000000000000000..c7d9a1002c2d16540503ebf363ec879be624da5f
--- /dev/null
+++ b/gpu/command_buffer/service/framebuffer_completeness_cache.h
@@ -0,0 +1,41 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GPU_COMMAND_BUFFER_SERVICE_FRAMEBUFFER_COMPLETENESS_CACHE_H_
+#define GPU_COMMAND_BUFFER_SERVICE_FRAMEBUFFER_COMPLETENESS_CACHE_H_
+
+#include "base/containers/hash_tables.h"
+#include "base/memory/ref_counted.h"
+#include "gpu/gpu_export.h"
+
+namespace gpu {
+namespace gles2 {
+
+// Refcounted wrapper for a hash_set of framebuffer format signatures
+// representing [XXX]
Ken Russell (switch to Gerrit) 2015/08/20 00:04:10 Incomplete comment?
Tobias Sargeant 2015/08/20 11:05:13 Yep. Oops.
+class GPU_EXPORT FramebufferCompletenessCache
+ : public base::RefCounted<FramebufferCompletenessCache> {
+ public:
+ FramebufferCompletenessCache();
+
+ bool IsComplete(const std::string& signature) const;
+ void SetComplete(const std::string& signature);
+
+ protected:
+ virtual ~FramebufferCompletenessCache();
+
+ private:
+ friend class base::RefCounted<FramebufferCompletenessCache>;
+
+ typedef base::hash_set<std::string> Map;
+
+ Map cache_;
+
+ DISALLOW_COPY_AND_ASSIGN(FramebufferCompletenessCache);
+};
+
+} // namespace gles2
+} // namespace gpu
+
+#endif // GPU_COMMAND_BUFFER_COMMON_FRAMEBUFFER_COMPLETENESS_CACHE_H_
no sievers 2015/08/19 23:39:47 nit: _COMMON_ -> _SERVICE_
Tobias Sargeant 2015/08/20 11:05:13 Done.

Powered by Google App Engine
This is Rietveld 408576698