| 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 | 10 |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 | 378 |
| 379 bool Thread::IsOwned() { | 379 bool Thread::IsOwned() { |
| 380 return owned_; | 380 return owned_; |
| 381 } | 381 } |
| 382 | 382 |
| 383 void Thread::Stop() { | 383 void Thread::Stop() { |
| 384 MessageQueue::Quit(); | 384 MessageQueue::Quit(); |
| 385 Join(); | 385 Join(); |
| 386 } | 386 } |
| 387 | 387 |
| 388 void Thread::Send(MessageHandler *phandler, uint32 id, MessageData *pdata) { | 388 void Thread::Send(MessageHandler* phandler, uint32_t id, MessageData* pdata) { |
| 389 if (fStop_) | 389 if (fStop_) |
| 390 return; | 390 return; |
| 391 | 391 |
| 392 // Sent messages are sent to the MessageHandler directly, in the context | 392 // Sent messages are sent to the MessageHandler directly, in the context |
| 393 // of "thread", like Win32 SendMessage. If in the right context, | 393 // of "thread", like Win32 SendMessage. If in the right context, |
| 394 // call the handler directly. | 394 // call the handler directly. |
| 395 Message msg; | 395 Message msg; |
| 396 msg.phandler = phandler; | 396 msg.phandler = phandler; |
| 397 msg.message_id = id; | 397 msg.message_id = id; |
| 398 msg.pdata = pdata; | 398 msg.pdata = pdata; |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 } | 488 } |
| 489 | 489 |
| 490 void Thread::InvokeBegin() { | 490 void Thread::InvokeBegin() { |
| 491 TRACE_EVENT_BEGIN0("webrtc", "Thread::Invoke"); | 491 TRACE_EVENT_BEGIN0("webrtc", "Thread::Invoke"); |
| 492 } | 492 } |
| 493 | 493 |
| 494 void Thread::InvokeEnd() { | 494 void Thread::InvokeEnd() { |
| 495 TRACE_EVENT_END0("webrtc", "Thread::Invoke"); | 495 TRACE_EVENT_END0("webrtc", "Thread::Invoke"); |
| 496 } | 496 } |
| 497 | 497 |
| 498 void Thread::Clear(MessageHandler *phandler, uint32 id, | 498 void Thread::Clear(MessageHandler* phandler, |
| 499 uint32_t id, |
| 499 MessageList* removed) { | 500 MessageList* removed) { |
| 500 CritScope cs(&crit_); | 501 CritScope cs(&crit_); |
| 501 | 502 |
| 502 // Remove messages on sendlist_ with phandler | 503 // Remove messages on sendlist_ with phandler |
| 503 // Object target cleared: remove from send list, wakeup/set ready | 504 // Object target cleared: remove from send list, wakeup/set ready |
| 504 // if sender not NULL. | 505 // if sender not NULL. |
| 505 | 506 |
| 506 std::list<_SendMessage>::iterator iter = sendlist_.begin(); | 507 std::list<_SendMessage>::iterator iter = sendlist_.begin(); |
| 507 while (iter != sendlist_.end()) { | 508 while (iter != sendlist_.end()) { |
| 508 _SendMessage smsg = *iter; | 509 _SendMessage smsg = *iter; |
| 509 if (smsg.msg.Match(phandler, id)) { | 510 if (smsg.msg.Match(phandler, id)) { |
| 510 if (removed) { | 511 if (removed) { |
| 511 removed->push_back(smsg.msg); | 512 removed->push_back(smsg.msg); |
| 512 } else { | 513 } else { |
| 513 delete smsg.msg.pdata; | 514 delete smsg.msg.pdata; |
| 514 } | 515 } |
| 515 iter = sendlist_.erase(iter); | 516 iter = sendlist_.erase(iter); |
| 516 *smsg.ready = true; | 517 *smsg.ready = true; |
| 517 smsg.thread->socketserver()->WakeUp(); | 518 smsg.thread->socketserver()->WakeUp(); |
| 518 continue; | 519 continue; |
| 519 } | 520 } |
| 520 ++iter; | 521 ++iter; |
| 521 } | 522 } |
| 522 | 523 |
| 523 MessageQueue::Clear(phandler, id, removed); | 524 MessageQueue::Clear(phandler, id, removed); |
| 524 } | 525 } |
| 525 | 526 |
| 526 bool Thread::ProcessMessages(int cmsLoop) { | 527 bool Thread::ProcessMessages(int cmsLoop) { |
| 527 uint32 msEnd = (kForever == cmsLoop) ? 0 : TimeAfter(cmsLoop); | 528 uint32_t msEnd = (kForever == cmsLoop) ? 0 : TimeAfter(cmsLoop); |
| 528 int cmsNext = cmsLoop; | 529 int cmsNext = cmsLoop; |
| 529 | 530 |
| 530 while (true) { | 531 while (true) { |
| 531 #if __has_feature(objc_arc) | 532 #if __has_feature(objc_arc) |
| 532 @autoreleasepool | 533 @autoreleasepool |
| 533 #elif defined(WEBRTC_MAC) | 534 #elif defined(WEBRTC_MAC) |
| 534 // see: http://developer.apple.com/library/mac/#documentation/Cocoa/Referenc
e/Foundation/Classes/NSAutoreleasePool_Class/Reference/Reference.html | 535 // see: http://developer.apple.com/library/mac/#documentation/Cocoa/Referenc
e/Foundation/Classes/NSAutoreleasePool_Class/Reference/Reference.html |
| 535 // Each thread is supposed to have an autorelease pool. Also for event loops | 536 // Each thread is supposed to have an autorelease pool. Also for event loops |
| 536 // like this, autorelease pool needs to be created and drained/released | 537 // like this, autorelease pool needs to be created and drained/released |
| 537 // for each cycle. | 538 // for each cycle. |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 if (SUCCEEDED(hr)) { | 599 if (SUCCEEDED(hr)) { |
| 599 Thread::Run(); | 600 Thread::Run(); |
| 600 CoUninitialize(); | 601 CoUninitialize(); |
| 601 } else { | 602 } else { |
| 602 LOG(LS_ERROR) << "CoInitialize failed, hr=" << hr; | 603 LOG(LS_ERROR) << "CoInitialize failed, hr=" << hr; |
| 603 } | 604 } |
| 604 } | 605 } |
| 605 #endif | 606 #endif |
| 606 | 607 |
| 607 } // namespace rtc | 608 } // namespace rtc |
| OLD | NEW |