| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "ppapi/shared_impl/ppapi_message_tracker.h" |
| 6 |
| 7 #include "base/logging.h" |
| 8 #include "base/memory/singleton.h" |
| 9 |
| 10 namespace ppapi { |
| 11 |
| 12 //static |
| 13 PpapiMessageTracker* PpapiMessageTracker::GetInstance() { |
| 14 return Singleton<PpapiMessageTracker>::get(); |
| 15 } |
| 16 |
| 17 PpapiMessageTracker::PpapiMessageTracker() : enter_count_(0) { |
| 18 } |
| 19 |
| 20 PpapiMessageTracker::~PpapiMessageTracker() { |
| 21 } |
| 22 |
| 23 void PpapiMessageTracker::EnterMessageHandling() { |
| 24 base::AutoLock auto_lock(lock_); |
| 25 enter_count_++; |
| 26 } |
| 27 |
| 28 void PpapiMessageTracker::ExitMessageHandling() { |
| 29 base::AutoLock auto_lock(lock_); |
| 30 DCHECK_GT(enter_count_, 0); |
| 31 enter_count_--; |
| 32 } |
| 33 |
| 34 bool PpapiMessageTracker::IsHandlingMessage() { |
| 35 base::AutoLock auto_lock(lock_); |
| 36 return enter_count_ > 0; |
| 37 } |
| 38 |
| 39 ScopedTrackPpapiMessage::ScopedTrackPpapiMessage() { |
| 40 PpapiMessageTracker::GetInstance()->EnterMessageHandling(); |
| 41 } |
| 42 |
| 43 ScopedTrackPpapiMessage::~ScopedTrackPpapiMessage() { |
| 44 PpapiMessageTracker::GetInstance()->ExitMessageHandling(); |
| 45 } |
| 46 |
| 47 } // namespace ppapi |
| OLD | NEW |