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

Side by Side Diff: chrome/browser/ui/cocoa/run_loop_testing.mm

Issue 19661004: Made MessagePump a non-thread safe class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adding a missing header. Created 7 years, 5 months 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/ui/cocoa/run_loop_testing.h" 5 #include "chrome/browser/ui/cocoa/run_loop_testing.h"
6 6
7 #import <Foundation/Foundation.h> 7 #import <Foundation/Foundation.h>
8 8
9 #include "base/mac/scoped_nsobject.h" 9 #include "base/mac/scoped_nsobject.h"
10 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_pump_mac.h" 11 #include "base/message_loop/message_pump_mac.h"
11 12
12 // This class is scheduled with a delayed selector to quit the message pump. 13 // This class is scheduled with a delayed selector to quit the message pump.
13 @interface CocoaQuitTask : NSObject { 14 @interface CocoaQuitTask : NSObject {
14 @private 15 @private
15 base::MessagePumpNSRunLoop* pump_; 16 base::MessagePumpNSRunLoop* pump_;
16 } 17 }
17 - (id)initWithMessagePump:(base::MessagePumpNSRunLoop*)pump; 18 - (id)initWithMessagePump:(base::MessagePumpNSRunLoop*)pump;
18 - (void)doQuit; 19 - (void)doQuit;
19 @end 20 @end
(...skipping 10 matching lines...) Expand all
30 pump_->Quit(); 31 pump_->Quit();
31 } 32 }
32 @end 33 @end
33 34
34 //////////////////////////////////////////////////////////////////////////////// 35 ////////////////////////////////////////////////////////////////////////////////
35 36
36 namespace chrome { 37 namespace chrome {
37 namespace testing { 38 namespace testing {
38 39
39 void NSRunLoopRunAllPending() { 40 void NSRunLoopRunAllPending() {
40 scoped_refptr<base::MessagePumpNSRunLoop> message_pump( 41 scoped_ptr<base::MessagePumpNSRunLoop> message_pump(
41 new base::MessagePumpNSRunLoop); 42 new base::MessagePumpNSRunLoop);
42 43
43 // Put a delayed selector on the queue. All other pending delayed selectors 44 // Put a delayed selector on the queue. All other pending delayed selectors
44 // will run before this, after which the internal loop can end. 45 // will run before this, after which the internal loop can end.
45 base::scoped_nsobject<CocoaQuitTask> quit_task( 46 base::scoped_nsobject<CocoaQuitTask> quit_task(
46 [[CocoaQuitTask alloc] initWithMessagePump:message_pump.get()]); 47 [[CocoaQuitTask alloc] initWithMessagePump:message_pump.get()]);
47 48
48 [quit_task performSelector:@selector(doQuit) 49 [quit_task performSelector:@selector(doQuit)
49 withObject:nil 50 withObject:nil
50 afterDelay:0]; 51 afterDelay:0];
51 52
52 // Spin the internal loop, running it until the quit task is pumped. Pass NULL 53 // Spin the internal loop, running it until the quit task is pumped. Pass NULL
53 // because there is no delegate MessageLoop; only the Cocoa work queues will 54 // because there is no delegate MessageLoop; only the Cocoa work queues will
54 // be pumped. 55 // be pumped.
55 message_pump->Run(NULL); 56 message_pump->Run(NULL);
56 } 57 }
57 58
58 } // namespace testing 59 } // namespace testing
59 } // namespace chrome 60 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/history_overlay_controller_unittest.mm ('k') | media/base/pipeline_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698