Merge "Fix race condition in CDM policy timer"

This commit is contained in:
KongQun Yang
2015-03-09 19:04:03 +00:00
committed by Android (Google) Code Review
2 changed files with 3 additions and 4 deletions

View File

@@ -121,6 +121,7 @@ class WvContentDecryptionModule : public TimerHandler {
void OnTimerEvent();
static Lock session_sharing_id_generation_lock_;
Lock policy_timer_lock_;
Timer policy_timer_;
// instance variables

View File

@@ -2,8 +2,6 @@
#include "wv_content_decryption_module.h"
#include <iostream>
#include "cdm_client_property_set.h"
#include "cdm_engine.h"
#include "initialization_data.h"
@@ -214,11 +212,13 @@ void WvContentDecryptionModule::NotifyResolution(const CdmSessionId& session_id,
}
void WvContentDecryptionModule::EnablePolicyTimer() {
AutoLock auto_lock(policy_timer_lock_);
if (!policy_timer_.IsRunning())
policy_timer_.Start(this, kCdmPolicyTimerDurationSeconds);
}
void WvContentDecryptionModule::DisablePolicyTimer(bool force) {
AutoLock auto_lock(policy_timer_lock_);
if ((cdm_engine_->SessionSize() == 0 || force) && policy_timer_.IsRunning())
policy_timer_.Stop();
}
@@ -232,6 +232,4 @@ uint32_t WvContentDecryptionModule::GenerateSessionSharingId() {
return ++next_session_sharing_id;
}
} // namespace wvcdm