Index: content/common/gpu/gpu_channel_manager.h |
diff --git a/content/common/gpu/gpu_channel_manager.h b/content/common/gpu/gpu_channel_manager.h |
index 4de851abf20722e7cb08182f7a6b80901931639d..e567377bbb632268b76ea33e19e19951aa94f32a 100644 |
--- a/content/common/gpu/gpu_channel_manager.h |
+++ b/content/common/gpu/gpu_channel_manager.h |
@@ -82,9 +82,6 @@ class CONTENT_EXPORT GpuChannelManager : public IPC::Listener, |
// Sender overrides. |
bool Send(IPC::Message* msg) override; |
- uint32_t ProcessedOrderNumber(); |
- uint32_t UnprocessedOrderNumber(); |
- |
void LoseAllContexts(); |
int GenerateRouteID(); |
@@ -97,7 +94,7 @@ class CONTENT_EXPORT GpuChannelManager : public IPC::Listener, |
GpuMemoryManager* gpu_memory_manager() { return &gpu_memory_manager_; } |
- GpuChannel* LookupChannel(int32 client_id); |
+ GpuChannel* LookupChannel(int32 client_id) const; |
gpu::SyncPointManager* sync_point_manager() { |
return sync_point_manager_; |
@@ -109,6 +106,17 @@ class CONTENT_EXPORT GpuChannelManager : public IPC::Listener, |
return gpu_memory_buffer_factory_; |
} |
+ // Increments the global order number used for IPC messages and returns the |
+ // new value. |
+ uint32_t GetNextUnprocessedOrderNum(); |
+ |
+ // Returns the current value of the global order number used for IPC messages. |
+ uint32_t GetCurrentUnprocessedOrderNum() const; |
+ |
+ // Returns the maximum order number for processed IPC messages across all |
+ // channels. |
+ uint32_t GetProcessedOrderNum() const; |
+ |
protected: |
virtual scoped_ptr<GpuChannel> CreateGpuChannel( |
gfx::GLShareGroup* share_group, |
@@ -177,6 +185,9 @@ class CONTENT_EXPORT GpuChannelManager : public IPC::Listener, |
// Must outlive this instance of GpuChannelManager. |
IPC::AttachmentBroker* attachment_broker_; |
+ uint32_t unprocessed_order_num_; |
+ mutable base::Lock order_num_lock_; // Guards unprocessed_order_num_. |
+ |
// Member variables should appear before the WeakPtrFactory, to ensure |
// that any WeakPtrs to Controller are invalidated before its members |
// variable's destructors are executed, rendering them invalid. |