Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(510)

Side by Side Diff: mojo/public/bindings/lib/message_queue.cc

Issue 65043004: Add better handle tracking, and optimize Connector::Accept. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update per review feedback Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/public/bindings/lib/message_queue.h" 5 #include "mojo/public/bindings/lib/message_queue.h"
6 6
7 #include <assert.h> 7 #include <assert.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include "mojo/public/bindings/lib/message.h" 10 #include "mojo/public/bindings/lib/message.h"
11 11
12 namespace mojo { 12 namespace mojo {
13 13
14 MessageQueue::MessageQueue() { 14 MessageQueue::MessageQueue() {
15 } 15 }
16 16
17 MessageQueue::~MessageQueue() { 17 MessageQueue::~MessageQueue() {
18 while (!queue_.empty()) 18 while (!queue_.empty())
19 Pop(); 19 Pop();
20 } 20 }
21 21
22 bool MessageQueue::IsEmpty() const { 22 bool MessageQueue::IsEmpty() const {
23 return queue_.empty(); 23 return queue_.empty();
24 } 24 }
25 25
26 const Message* MessageQueue::Peek() const { 26 Message* MessageQueue::Peek() {
27 assert(!queue_.empty()); 27 assert(!queue_.empty());
28 return queue_.front(); 28 return queue_.front();
29 } 29 }
30 30
31 void MessageQueue::Push(Message* message) { 31 void MessageQueue::Push(Message* message) {
32 queue_.push(new Message()); 32 queue_.push(new Message());
33 queue_.back()->Swap(message); 33 queue_.back()->Swap(message);
34 } 34 }
35 35
36 void MessageQueue::Pop(Message* message) { 36 void MessageQueue::Pop(Message* message) {
37 assert(!queue_.empty()); 37 assert(!queue_.empty());
38 queue_.front()->Swap(message); 38 queue_.front()->Swap(message);
39 Pop(); 39 Pop();
40 } 40 }
41 41
42 void MessageQueue::Pop() { 42 void MessageQueue::Pop() {
43 assert(!queue_.empty()); 43 assert(!queue_.empty());
44 delete queue_.front(); 44 delete queue_.front();
45 queue_.pop(); 45 queue_.pop();
46 } 46 }
47 47
48 } // namespace mojo 48 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/bindings/lib/message_queue.h ('k') | mojo/public/tests/bindings_connector_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698