摘要: 假设一种环境,我们要对服务热拔插一个动态库(.so文件),所要考虑的是多线程环境的兼容,不会因为动态库替换后造成栈损毁而崩溃。这边想到的方法就是封装一个dlopen过程作为对象实例加载(见load_so.h),当发出更新动态库时重新dlopen过程,替换原先的实例,注意这个替换过程必须是温和的、无逢的,这边我们使用智能指针实现。具体更新的实现通过一个单例(见do_sth.h),调用Reload重新加载动态库。我们构造一个极简单的动态库测试:make_so.h#include "say.h"extern "C"{ void Enter(const std: 阅读全文
posted @ 2011-07-19 11:57 lajabs 阅读(2611) 评论(0) 推荐(0) 编辑
摘要: 引用之前发表过的文章:http://lajabs.blog.cd/?p=342针对如下错误:terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector >'what(): boost::lock_error在之后不断地资料查找中发现官方解释如下,这是一系列的锁检测机制:Checked Locking StrategyWith a checked locking strat 阅读全文
posted @ 2011-07-19 11:44 lajabs 阅读(2159) 评论(0) 推荐(0) 编辑
摘要: php做为脚本语言,有时也有特殊的需求对外连接到其它服务器发送消息,简单的方法可以直接使用socket扩展,比如连接一个TCP服务器。 阅读全文
posted @ 2011-07-19 11:42 lajabs 阅读(911) 评论(0) 推荐(0) 编辑
摘要: 使用共享内存方式实现一个属于php的“自旋锁”,主要特点是: 1、检测和避免死锁 2、并可以自定义锁定超时 3、可以在运行结束后自动释放锁定 4、可搜集分析锁竞争和锁等待情况 阅读全文
posted @ 2011-07-19 11:28 lajabs 阅读(1443) 评论(0) 推荐(1) 编辑