Chromium Code Reviews| Index: content/renderer/media/render_media_log.h |
| diff --git a/content/renderer/media/render_media_log.h b/content/renderer/media/render_media_log.h |
| index a67927d1228d3574449a9035750a164089ded399..67b4d04432462da9ddc8ca064f8a7ad2ad7d9e42 100644 |
| --- a/content/renderer/media/render_media_log.h |
| +++ b/content/renderer/media/render_media_log.h |
| @@ -8,6 +8,7 @@ |
| #include <vector> |
| #include "base/macros.h" |
| +#include "base/synchronization/lock.h" |
| #include "base/time/time.h" |
| #include "content/common/content_export.h" |
| #include "media/base/media_log.h" |
| @@ -40,17 +41,25 @@ class CONTENT_EXPORT RenderMediaLog : public media::MediaLog { |
| private: |
| ~RenderMediaLog() override; |
| - // Add event on the |task_runner_|. |
| - void AddEventInternal(scoped_ptr<media::MediaLogEvent> event); |
| - |
| - // Posted as a delayed task to throttle ipc message frequency. |
| + // Posted as a delayed task on |task_runner_| to throttle ipc message |
| + // frequency. |
| void SendQueuedMediaEvents(); |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| + |
| + // |lock_| serializes access to |tick_clock_|, |last_ipc_send_time_|, |
| + // |queued_media_events_|, |ipc_send_pending_| and |
| + // |last_buffered_extents_changed_event_|. It allows any render process thread |
| + // to AddEvent(), while preserving their sequence for throttled send by |
| + // |task_runner_|. |
|
watk
2016/04/04 20:32:21
nit: "throttled send by |task_runner_|" -> "thrott
wolenetz
2016/04/04 20:47:55
Done.
|
| + mutable base::Lock lock_; |
| scoped_ptr<base::TickClock> tick_clock_; |
| base::TimeTicks last_ipc_send_time_; |
| std::vector<media::MediaLogEvent> queued_media_events_; |
| + // For enforcing max 1 pending send. |
| + bool ipc_send_pending_; |
| + |
| // Limits the number buffered extents changed events we send over IPC to one. |
| scoped_ptr<media::MediaLogEvent> last_buffered_extents_changed_event_; |