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

Side by Side Diff: base/message_loop/message_pump_glib_unittest.cc

Issue 2283003002: Remove unneeded scoped_refptr<>::get on method bind (Closed)
Patch Set: update Created 4 years, 3 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 "base/message_loop/message_pump_glib.h" 5 #include "base/message_loop/message_pump_glib.h"
6 6
7 #include <glib.h> 7 #include <glib.h>
8 #include <math.h> 8 #include <math.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 // Tests that posted tasks don't starve events, nor the opposite. 350 // Tests that posted tasks don't starve events, nor the opposite.
351 // We use the helper class above. We keep both event and posted task queues 351 // We use the helper class above. We keep both event and posted task queues
352 // full, the helper verifies that both tasks and events get processed. 352 // full, the helper verifies that both tasks and events get processed.
353 // If that is not the case, either event_count_ or task_count_ will not get 353 // If that is not the case, either event_count_ or task_count_ will not get
354 // to 0, and MessageLoop::QuitWhenIdle() will never be called. 354 // to 0, and MessageLoop::QuitWhenIdle() will never be called.
355 scoped_refptr<ConcurrentHelper> helper = new ConcurrentHelper(injector()); 355 scoped_refptr<ConcurrentHelper> helper = new ConcurrentHelper(injector());
356 356
357 // Add 2 events to the queue to make sure it is always full (when we remove 357 // Add 2 events to the queue to make sure it is always full (when we remove
358 // the event before processing it). 358 // the event before processing it).
359 injector()->AddEventAsTask( 359 injector()->AddEventAsTask(
360 0, Bind(&ConcurrentHelper::FromEvent, helper.get())); 360 0, Bind(&ConcurrentHelper::FromEvent, helper));
361 injector()->AddEventAsTask( 361 injector()->AddEventAsTask(
362 0, Bind(&ConcurrentHelper::FromEvent, helper.get())); 362 0, Bind(&ConcurrentHelper::FromEvent, helper));
363 363
364 // Similarly post 2 tasks. 364 // Similarly post 2 tasks.
365 loop()->task_runner()->PostTask( 365 loop()->task_runner()->PostTask(
366 FROM_HERE, Bind(&ConcurrentHelper::FromTask, helper.get())); 366 FROM_HERE, Bind(&ConcurrentHelper::FromTask, helper));
367 loop()->task_runner()->PostTask( 367 loop()->task_runner()->PostTask(
368 FROM_HERE, Bind(&ConcurrentHelper::FromTask, helper.get())); 368 FROM_HERE, Bind(&ConcurrentHelper::FromTask, helper));
369 369
370 RunLoop().Run(); 370 RunLoop().Run();
371 EXPECT_EQ(0, helper->event_count()); 371 EXPECT_EQ(0, helper->event_count());
372 EXPECT_EQ(0, helper->task_count()); 372 EXPECT_EQ(0, helper->task_count());
373 } 373 }
374 374
375 namespace { 375 namespace {
376 376
377 void AddEventsAndDrainGLib(EventInjector* injector) { 377 void AddEventsAndDrainGLib(EventInjector* injector) {
378 // Add a couple of dummy events 378 // Add a couple of dummy events
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 452 ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
453 Bind(&IncrementInt, &task_count)); 453 Bind(&IncrementInt, &task_count));
454 // Delayed events 454 // Delayed events
455 injector->AddDummyEvent(10); 455 injector->AddDummyEvent(10);
456 injector->AddDummyEvent(10); 456 injector->AddDummyEvent(10);
457 // Delayed work 457 // Delayed work
458 ThreadTaskRunnerHandle::Get()->PostDelayedTask( 458 ThreadTaskRunnerHandle::Get()->PostDelayedTask(
459 FROM_HERE, Bind(&IncrementInt, &task_count), 459 FROM_HERE, Bind(&IncrementInt, &task_count),
460 TimeDelta::FromMilliseconds(30)); 460 TimeDelta::FromMilliseconds(30));
461 ThreadTaskRunnerHandle::Get()->PostDelayedTask( 461 ThreadTaskRunnerHandle::Get()->PostDelayedTask(
462 FROM_HERE, Bind(&GLibLoopRunner::Quit, runner.get()), 462 FROM_HERE, Bind(&GLibLoopRunner::Quit, runner),
463 TimeDelta::FromMilliseconds(40)); 463 TimeDelta::FromMilliseconds(40));
464 464
465 // Run a nested, straight GLib message loop. 465 // Run a nested, straight GLib message loop.
466 runner->RunGLib(); 466 runner->RunGLib();
467 467
468 ASSERT_EQ(3, task_count); 468 ASSERT_EQ(3, task_count);
469 EXPECT_EQ(4, injector->processed_events()); 469 EXPECT_EQ(4, injector->processed_events());
470 MessageLoop::current()->QuitWhenIdle(); 470 MessageLoop::current()->QuitWhenIdle();
471 } 471 }
472 472
(...skipping 12 matching lines...) Expand all
485 ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 485 ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
486 Bind(&IncrementInt, &task_count)); 486 Bind(&IncrementInt, &task_count));
487 // Delayed events 487 // Delayed events
488 injector->AddDummyEvent(10); 488 injector->AddDummyEvent(10);
489 injector->AddDummyEvent(10); 489 injector->AddDummyEvent(10);
490 // Delayed work 490 // Delayed work
491 ThreadTaskRunnerHandle::Get()->PostDelayedTask( 491 ThreadTaskRunnerHandle::Get()->PostDelayedTask(
492 FROM_HERE, Bind(&IncrementInt, &task_count), 492 FROM_HERE, Bind(&IncrementInt, &task_count),
493 TimeDelta::FromMilliseconds(30)); 493 TimeDelta::FromMilliseconds(30));
494 ThreadTaskRunnerHandle::Get()->PostDelayedTask( 494 ThreadTaskRunnerHandle::Get()->PostDelayedTask(
495 FROM_HERE, Bind(&GLibLoopRunner::Quit, runner.get()), 495 FROM_HERE, Bind(&GLibLoopRunner::Quit, runner),
496 TimeDelta::FromMilliseconds(40)); 496 TimeDelta::FromMilliseconds(40));
497 497
498 // Run a nested, straight Gtk message loop. 498 // Run a nested, straight Gtk message loop.
499 runner->RunLoop(); 499 runner->RunLoop();
500 500
501 ASSERT_EQ(3, task_count); 501 ASSERT_EQ(3, task_count);
502 EXPECT_EQ(4, injector->processed_events()); 502 EXPECT_EQ(4, injector->processed_events());
503 MessageLoop::current()->QuitWhenIdle(); 503 MessageLoop::current()->QuitWhenIdle();
504 } 504 }
505 505
(...skipping 13 matching lines...) Expand all
519 // Tests that events and posted tasks are correctly executed if the message 519 // Tests that events and posted tasks are correctly executed if the message
520 // loop is not run by MessageLoop::Run() but by a straight Gtk loop. 520 // loop is not run by MessageLoop::Run() but by a straight Gtk loop.
521 // Note that in this case we don't make strong guarantees about niceness 521 // Note that in this case we don't make strong guarantees about niceness
522 // between events and posted tasks. 522 // between events and posted tasks.
523 loop()->task_runner()->PostTask( 523 loop()->task_runner()->PostTask(
524 FROM_HERE, Bind(&TestGtkLoopInternal, Unretained(injector()))); 524 FROM_HERE, Bind(&TestGtkLoopInternal, Unretained(injector())));
525 RunLoop().Run(); 525 RunLoop().Run();
526 } 526 }
527 527
528 } // namespace base 528 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698