Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 /* | 1 /* | 
| 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 
| 3 * | 3 * | 
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license | 
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source | 
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found | 
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may | 
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. | 
| 9 */ | 9 */ | 
| 10 #include <algorithm> | 10 #include <algorithm> | 
| (...skipping 26 matching lines...) Expand all Loading... | |
| 37 *locked_ = false; | 37 *locked_ = false; | 
| 38 cs_->Leave(); | 38 cs_->Leave(); | 
| 39 } | 39 } | 
| 40 | 40 | 
| 41 private: | 41 private: | 
| 42 const CriticalSection* const cs_; | 42 const CriticalSection* const cs_; | 
| 43 bool* locked_; | 43 bool* locked_; | 
| 44 | 44 | 
| 45 RTC_DISALLOW_COPY_AND_ASSIGN(DebugNonReentrantCritScope); | 45 RTC_DISALLOW_COPY_AND_ASSIGN(DebugNonReentrantCritScope); | 
| 46 }; | 46 }; | 
| 47 | |
| 48 class FunctorPostMessageHandler : public MessageHandler { | |
| 49 public: | |
| 50 void OnMessage(Message* msg) override; | |
| 51 }; | |
| 52 | |
| 53 void FunctorPostMessageHandler::OnMessage(Message* msg) { | |
| 54 CallableData* data = static_cast<CallableData*>(msg->pdata); | |
| 55 data->call(); | |
| 56 delete data; | |
| 57 } | |
| 
 
kwiberg-webrtc
2017/06/26 13:07:48
Define this function inline? There's no downside t
 
nisse-webrtc
2017/06/27 08:27:17
Done.
 
 | |
| 58 | |
| 47 } // namespace | 59 } // namespace | 
| 48 | 60 | 
| 49 //------------------------------------------------------------------ | 61 //------------------------------------------------------------------ | 
| 50 // MessageQueueManager | 62 // MessageQueueManager | 
| 51 | 63 | 
| 52 MessageQueueManager* MessageQueueManager::instance_ = nullptr; | 64 MessageQueueManager* MessageQueueManager::instance_ = nullptr; | 
| 53 | 65 | 
| 54 MessageQueueManager* MessageQueueManager::Instance() { | 66 MessageQueueManager* MessageQueueManager::Instance() { | 
| 55 // Note: This is not thread safe, but it is first called before threads are | 67 // Note: This is not thread safe, but it is first called before threads are | 
| 56 // spawned. | 68 // spawned. | 
| (...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 522 int64_t start_time = TimeMillis(); | 534 int64_t start_time = TimeMillis(); | 
| 523 pmsg->phandler->OnMessage(pmsg); | 535 pmsg->phandler->OnMessage(pmsg); | 
| 524 int64_t end_time = TimeMillis(); | 536 int64_t end_time = TimeMillis(); | 
| 525 int64_t diff = TimeDiff(end_time, start_time); | 537 int64_t diff = TimeDiff(end_time, start_time); | 
| 526 if (diff >= kSlowDispatchLoggingThreshold) { | 538 if (diff >= kSlowDispatchLoggingThreshold) { | 
| 527 LOG(LS_INFO) << "Message took " << diff << "ms to dispatch. Posted from: " | 539 LOG(LS_INFO) << "Message took " << diff << "ms to dispatch. Posted from: " | 
| 528 << pmsg->posted_from.ToString(); | 540 << pmsg->posted_from.ToString(); | 
| 529 } | 541 } | 
| 530 } | 542 } | 
| 531 | 543 | 
| 544 void MessageQueue::PostFunctorInternal(const Location& posted_from, | |
| 545 CallableData* message_data) | |
| 546 { | |
| 
 
tommi
2017/06/27 12:01:14
can you run git cl format?
 
nisse-webrtc
2017/06/28 11:47:54
Already done, in ps#14.
 
 | |
| 547 // FunctorPostMessageHandler keeps no state, create a static object. | |
| 548 RTC_DEFINE_STATIC_LOCAL(FunctorPostMessageHandler, handler, ()); | |
| 
 
kwiberg-webrtc
2017/06/26 13:07:48
Why not just
  FunctorPostMessageHandler handler;
 
nisse-webrtc
2017/06/27 08:27:17
It has to outlive this scope, since it's accessed
 
kwiberg-webrtc
2017/06/27 09:16:28
Ah, right, it has a vtable. But yes, as of C++11,
 
nisse-webrtc
2017/06/28 11:47:54
Good. But it still has to be in a local scope? (If
 
 | |
| 549 Post(posted_from, &handler, 0, message_data); | |
| 550 } | |
| 551 | |
| 532 } // namespace rtc | 552 } // namespace rtc | 
| OLD | NEW |