Change from custom Lock to std::mutex.
[ Merge of http://go/wvgerrit/67884 ] Now that we can use C++11, we should use the cross-platform std::mutex type, not the custom pthread version. Bug: 111850982 Test: WV unit/integration tests Change-Id: If2fde2836826c5184609e6b1f3a6511206bd4594
This commit is contained in:
@@ -21,7 +21,7 @@ const int kCdmPolicyTimerDurationSeconds = 1;
|
||||
|
||||
namespace wvcdm {
|
||||
|
||||
Lock WvContentDecryptionModule::session_sharing_id_generation_lock_;
|
||||
std::mutex WvContentDecryptionModule::session_sharing_id_generation_lock_;
|
||||
|
||||
WvContentDecryptionModule::WvContentDecryptionModule() {}
|
||||
|
||||
@@ -51,7 +51,7 @@ CdmResponseType WvContentDecryptionModule::OpenSession(
|
||||
const CdmIdentifier& identifier, WvCdmEventListener* event_listener,
|
||||
CdmSessionId* session_id) {
|
||||
if (property_set && property_set->is_session_sharing_enabled()) {
|
||||
AutoLock auto_lock(session_sharing_id_generation_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(session_sharing_id_generation_lock_);
|
||||
if (property_set->session_sharing_id() == 0)
|
||||
property_set->set_session_sharing_id(GenerateSessionSharingId());
|
||||
}
|
||||
@@ -72,7 +72,7 @@ CdmResponseType WvContentDecryptionModule::CloseSession(
|
||||
CdmEngine* cdm_engine = GetCdmForSessionId(session_id);
|
||||
// TODO(rfrias): Avoid reusing the error codes from CdmEngine.
|
||||
if (!cdm_engine) return SESSION_NOT_FOUND_1;
|
||||
AutoLock auto_lock(cdms_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(cdms_lock_);
|
||||
CdmResponseType sts = cdm_engine->CloseSession(session_id);
|
||||
cdm_engine->GetMetrics()->cdm_engine_close_session_.Increment(sts);
|
||||
if (sts == NO_ERROR) {
|
||||
@@ -366,7 +366,7 @@ CdmResponseType WvContentDecryptionModule::GetMetrics(
|
||||
if (!metrics) {
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
AutoLock auto_lock(cdms_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(cdms_lock_);
|
||||
auto it = cdms_.find(identifier);
|
||||
if (it == cdms_.end()) {
|
||||
LOGE("WVContentDecryptionModule::GetMetrics. cdm_identifier not found");
|
||||
@@ -382,7 +382,7 @@ WvContentDecryptionModule::CdmInfo::CdmInfo()
|
||||
|
||||
CdmEngine* WvContentDecryptionModule::EnsureCdmForIdentifier(
|
||||
const CdmIdentifier& identifier) {
|
||||
AutoLock auto_lock(cdms_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(cdms_lock_);
|
||||
if (cdms_.find(identifier) == cdms_.end()) {
|
||||
// Accessing the map entry will create a new instance using the default
|
||||
// constructor. We then need to provide it with two pieces of info: The
|
||||
@@ -411,7 +411,7 @@ CdmEngine* WvContentDecryptionModule::GetCdmForSessionId(
|
||||
}
|
||||
|
||||
void WvContentDecryptionModule::CloseAllCdms() {
|
||||
AutoLock auto_lock(cdms_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(cdms_lock_);
|
||||
|
||||
for (auto it = cdms_.begin(); it != cdms_.end();) {
|
||||
it = cdms_.erase(it);
|
||||
@@ -426,7 +426,7 @@ CdmResponseType WvContentDecryptionModule::CloseCdm(
|
||||
// Acquire the cdms_lock_ first, in its own scope.
|
||||
bool cdms_empty = false;
|
||||
{
|
||||
AutoLock auto_lock(cdms_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(cdms_lock_);
|
||||
auto it = cdms_.find(cdm_identifier);
|
||||
if (it == cdms_.end()) {
|
||||
LOGE("WVContentDecryptionModule::Close. cdm_identifier not found.");
|
||||
@@ -453,20 +453,20 @@ CdmResponseType WvContentDecryptionModule::CloseCdm(
|
||||
}
|
||||
|
||||
void WvContentDecryptionModule::EnablePolicyTimer() {
|
||||
AutoLock auto_lock(policy_timer_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(policy_timer_lock_);
|
||||
if (!policy_timer_.IsRunning())
|
||||
policy_timer_.Start(this, kCdmPolicyTimerDurationSeconds);
|
||||
}
|
||||
|
||||
void WvContentDecryptionModule::DisablePolicyTimer() {
|
||||
AutoLock auto_lock(policy_timer_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(policy_timer_lock_);
|
||||
if (policy_timer_.IsRunning()) {
|
||||
policy_timer_.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
void WvContentDecryptionModule::OnTimerEvent() {
|
||||
AutoLock auto_lock(cdms_lock_);
|
||||
std::unique_lock<std::mutex> auto_lock(cdms_lock_);
|
||||
for (auto it = cdms_.begin(); it != cdms_.end(); ++it) {
|
||||
it->second.cdm_engine->OnTimerEvent();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user