随笔分类 -  chromium

chromium之message_pump_win之三
摘要:先看看典型用法 第一种用法是不需要读取数据到buffer,因此所有的清理工作可以交给message pump 第二种用法是需要读取buffer,需要手动delete IOContext 第三种用法是在第二种的基础上,析构函数等待所有的IO结束 来来来,上代码 1)have_work_ = 1; 2) 阅读全文

posted @ 2018-06-23 20:50 ckelsel 阅读(326) 评论(0) 推荐(0)

chromium之message_pump_win之二
摘要:先看看介绍,有点长 看不下去了,看代码把, 总共两个步骤: 1) have_work_ = 1; 2) 发送一个kMsgHaveWork消息,通知MessagePump 工作 接下来是ScheduleDelayedWork SetTimer, https://msdn.microsoft.com/e 阅读全文

posted @ 2018-06-23 19:06 ckelsel 阅读(468) 评论(0) 推荐(0)

chromium之ScopedNSAutoreleasePool浅析
摘要:上代码,看看注释 ScopedNSAutoreleasePool只有Mac系统特有的,也可以理解为OC特有的函数, 其他系统为空实现 阅读全文

posted @ 2018-06-23 17:34 ckelsel 阅读(152) 评论(0) 推荐(0)

chromium之MessagePump.h
摘要:上代码,注释已经写得很详细了。 粗看一下,这是个纯虚类,用于跨平台的通用接口。 MessagePump,Pump的意思是泵,,MessagePump也就是消息泵,输送消息 阅读全文

posted @ 2018-06-23 15:23 ckelsel 阅读(671) 评论(0) 推荐(0)

chromium之at_exit
摘要:exit_manager离开作用域,所有的回调函数,单例的析构函数将会被调用。 再看看头文件 使用方法很简单,只要在main函数最开始的地方,定义一个即可 阅读全文

posted @ 2018-06-09 10:49 ckelsel 阅读(272) 评论(0) 推荐(0)

chromium之dynamic_annotations
摘要:使用方法: 阅读全文

posted @ 2018-06-09 10:34 ckelsel 阅读(280) 评论(0) 推荐(0)

chromium之thread_local
摘要:thread_local 阅读全文

posted @ 2018-06-09 10:23 ckelsel 阅读(137) 评论(0) 推荐(0)

chromium之message_pump_default
摘要:依次分析下,MessagePumpDefault::Run 接下来是MessagePumpDefault::Quit 设置MessagePumpDefault::Run的循环标志为false,退出循环 接下来是MessagePumpDefault::ScheduleWork 启动计划工作 最后是Me 阅读全文

posted @ 2018-06-09 10:22 ckelsel 阅读(283) 评论(0) 推荐(0)

chromium之lazy_instance
摘要:1. 线程安全,构造成功后向AtExitManager注册,析构函数会在程序退出时调用 2. 类似Singleton,但是可以有多个同一个类型的LazyInstance,Singleton只能有一个类型的实例 3. POD https://akrzemi1.wordpress.com/2012/04 阅读全文

posted @ 2018-06-09 10:21 ckelsel 阅读(353) 评论(0) 推荐(0)

chromium之compiler_specific
摘要:直接上代码,将一些编译警告定义成宏 #if defined(COMPILER_MSVC) // Macros for suppressing and disabling warnings on MSVC. // // Warning numbers are enumerated at: // http://msdn.microsoft.com/en-us/library/8x5x43k7(VS... 阅读全文

posted @ 2018-06-09 10:20 ckelsel 阅读(191) 评论(0) 推荐(0)

chromium之message_pump_win之一
摘要:对应的实现,跟chromium之observer_list一模一样 关键的第二部分 实现了MessagePump的两个接口Run和Quit 再详细看下实现 阅读全文

posted @ 2018-06-09 10:19 ckelsel 阅读(343) 评论(0) 推荐(0)

chromium之ThreadLocalStorage
摘要:看看头文件怎么用 阅读全文

posted @ 2018-06-08 09:41 ckelsel 阅读(250) 评论(0) 推荐(0)

chromium之tracked_objects
摘要:该文件用到了chromium之ThreadLocalStorage 看看头文件 大致想想怎么用 1. 开始 开始运行, 2. 结束,并输出 阅读全文

posted @ 2018-06-08 09:12 ckelsel 阅读(313) 评论(0) 推荐(0)

chromium之tracked
摘要:信息跟踪收集,用于统计分析的工具 下面的代码是不是很熟悉,FROM_HERE 构造函数如下: 记录了函数名,文件名,行号 不过,只有在调试模式,才会有比较详细的统计信息 调试模式下,多了一个没见过的ThreadData,可以分析分析chromium之tracked_objects 阅读全文

posted @ 2018-05-17 21:54 ckelsel 阅读(241) 评论(0) 推荐(0)

chromium之revocable_store
摘要:Revoke: 撤销 阅读全文

posted @ 2018-05-17 21:53 ckelsel 阅读(165) 评论(0) 推荐(0)

chromium之tuple
摘要:Tuple是一个通用的模板化容器,类似std::pair的概念。 转换函数MakeTuple接收0-6个参数,并返回一个Tuple对象 看看代码 阅读全文

posted @ 2018-05-17 21:53 ckelsel 阅读(136) 评论(0) 推荐(0)

chromium之non_thread_safe
摘要:先看看介绍 线程A创建了MyClass,但是Foo()是非线程安全的函数 因此在Debug模式下,需要检验Foo()是否在线程A内调用 通过如下函数来判断。 看一下实现,就知道很简单了。 阅读全文

posted @ 2018-05-17 21:52 ckelsel 阅读(173) 评论(0) 推荐(0)

chromium之task
摘要:第一个文件 分析下代码 继承Task, 实现Run()函数即可 阅读全文

posted @ 2018-05-17 21:48 ckelsel 阅读(220) 评论(0) 推荐(0)

chromium之scoped_ptr
摘要:看看怎么使用 scoped_ptr顾名思义,就是离开作用域,就会自动析构。 这跟上一节的chromium之ref_counted什么区别。 区别在于RefCounted必须调用Release才会自动析构,而且可以有多次引用,而scoped_ptr离开作用域就会自动析构 这里有一个方法release( 阅读全文

posted @ 2018-05-16 22:05 ckelsel 阅读(386) 评论(0) 推荐(0)

chromium之ref_counted
摘要:第二个类RefCounted 是个模板,继承了subtle::RefCountedBase,而且有Public方法 使用方法更简单 阅读全文

posted @ 2018-05-16 21:42 ckelsel 阅读(278) 评论(0) 推荐(0)

导航