chromium之MessageLoop浅析

对chromium的MessageLoop非常感兴趣,接下来会详细分析Windows平台的具体实现。

代码版本:chromium-4.0.210.0_p26329

 


 

先看一下依赖的文件

message_loop.cc

#include "base/message_loop.h"

#include <algorithm>

#include "base/compiler_specific.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/message_pump_default.h"
#include "base/string_util.h"
#include "base/thread_local.h"

 

message_loop.h

#include <queue>
#include <string>

#include "base/histogram.h"
#include "base/message_pump.h"
#include "base/observer_list.h"
#include "base/ref_counted.h"
#include "base/scoped_ptr.h"
#include "base/task.h"

#if defined(OS_WIN)
// We need this to declare base::MessagePumpWin::Dispatcher, which we should
// really just eliminate.
#include "base/message_pump_win.h"
#elif defined(OS_POSIX)
#include "base/message_pump_libevent.h"
#endif
#if defined(OS_LINUX)
#include "base/message_pump_glib.h"
#endif

 

引用的头文件一多,一看就很复杂。

方便起见,从message_loop.h的第一个头文件开始,一路分析。

 

第一个文件

#include "base/histogram.h"

 参考分析chromium之histogram.h,直方图是程序输出统计信息的一个功能

 

下一个文件

#include "base/observer_list.h"

 参考分析chromium之observer_list,观察者模式

 

下一个文件

#include "base/ref_counted.h"

 参考分析chromium之ref_counted,引用计数,可以手动控制对象的生命周期

 

下一个文件

#include "base/scoped_ptr.h"

 参考分析chromium之scoped_ptr,局部指针可以用于内存的自动释放,离开作用域后,对象的生命周期也结束

 

下一个文件

#include "base/task.h"

 参考分析chromium之task,任务,要执行的某一个功能

 

下一个文件

#include "base/message_pump_win.h"

 参考分析chromium之message_pump_win



接下来看看message_loop.cc的引用的头文件

#include "base/compiler_specific.h"

 参考分析chromium之compiler_specific

 

下一个文件

#include "base/lazy_instance.h"

 参考分析chromium之lazy_instance

 

下一个文件

#include "base/message_pump_default.h"

 参考分析chromium之message_pump_default

 

下一个文件

#include "base/thread_local.h"

  参考分析chromium之thread_local







 

 

posted on 2018-05-13 16:22  ckelsel  阅读(403)  评论(0编辑  收藏  举报

导航