GithubHelp home page GithubHelp logo

cpp-actor-framework's Introduction

并发逻辑控制框架,适用于复杂业务逻辑;
运行平台支持 windows XP/windows server 2003或以上、x86_x64-linux/armv7_v8-linux、armv7_v8-android;
支持编译器VC2013/VC2015,GCC4.8+;
依赖于boost 1.5x;
使用stackful/stackless协程构建,stackful运行时按需扩张栈空间(4K-1M),4G内存最多可创建一千万以上stackless协程;
actor/generator之间多种0-copy消息通信方式;
1:n的方式划分串行调度队列,在不使用消息的情况下也可有效规避多个逻辑之间多线程安全问题;
三级调度,主流x86处理器单线程下stackful调度一千万以上,stackless两千万以上;
两级定时器队列,一个进程可只申请一个系统定时器句柄;
QT异步UI驱动、NodeJs模块消息交互接口;
暂时不提供开发文档,有问题或BUG发送至 [email protected];
可以用来构建服务端/客户端,也可以用在与网络无关的程序中;
可以任意使用或编辑源码,而不需通知作者,当然作者也不对使用本框架造成的任何损失负责.

svn url(版本保持最新):
svn://ham2015.6655.la:1000/MyActor
Node.js版本(支持web前端js)
svn://ham2015.6655.la:1000/MyActorNodeJs

github url:
https://github.com/HAM-2015/CPP-Actor-framework

oschina url:
http://git.oschina.net/hamasm/cpp-actor-framework
http://www.oschina.net/code/snippet_2274073_45577

ftp url:
ftp://ham2015.6655.la/files/MyActor/

2016-09-20
添加generator下的channel通信机制(无缓存/有限缓存/无限缓存),支持select-case方式读取多个channel;
添加generator下的逻辑mutex互斥.

2016-09-08
添加基于stackless的generator,支持co_yield、co_async、co_await、co_call语义.

2016-08-18
添加Node.Js与C++扩展模块之间Actor交互(测试Node.Js版本6.2.2).

2016-08-09
添加可以在Node.Js C++扩展动态库uv线程内运行Actor(测试Node.Js版本6.2.2).

2016-03-26
移植到arm-android(Linux-Kernel-3.4.0+)平台(包括 QT For Android 异步UI驱动).

2016-03-15
移植到arm-linux平台.

2015-12-28
添加linux平台下的自动栈空间伸缩管理.

2015-12-25
添加windows平台下的自动栈空间伸缩管理.

2015-12-18
添加对mingw的支持.

2015-12-09
优化windows,linux平台下的定时器性能.

2015-11-13
修改windows下使用Fiber驱动上下文切换.

2015-11-11
添加在QT-UI线程中运行Actor,驱动异步UI.

2015-11-05
添加"通知句柄"丢失检测,消息等待时可以捕获通知句柄丢失异常.

2015-10-31
移植到linux系统.

2015-09-24
改进采用TLS技术检测当前代码运行在哪个Actor下.

2015-09-21
使Actor在lock_quit()后检测到quit_msg消息仍然可以运行.

2015-08-23
让一个Actor内可以同时支持多个相同类型消息.

2015-08-02
添加在一个Actor内互斥运行多个业务逻辑段.

2015-07-30
支持任意参数个数消息.

2015-07-12
优化右值转移,使消息传递支持0拷贝.
添加值引用消息.

2015-07-10
二级调度器shared_strand添加next_tick功能,提高消息传递性能.

2015-06-26
优化Actor的内部定时器.

2015-06-12
添加同步消息(sync_msg)和CSP模型消息(csp_channel).

2015-06-09
去掉“actor_mutex”、“actor_shared_mutex”不必要的 close 功能.

2015-06-06
添加直接产生上下文的回调函数,可以不用显示使用await操作等待回调完成.

2015-06-03
优化检测堆栈溢出功能,输出具体哪个Actor溢出日志.

2015-06-01
优化等待子Actor结束的性能,取消等待返回bool值.

2015-05-29
添加actor_shared_mutex,用于业务逻辑之间的同步.

2015-05-24
添加在DEBUG下创建Actor时保存调用堆栈,方便某个Actor异常时调试跟踪.

2015-05-15
添加可以检测当前代码运行在哪个Actor下.

2015-04-14
核心功能整体优化;
添加actor_mutex;
添加可以暂时锁定Actor,不让其强制退出,用于关键逻辑段;
添加多级消息代理.

2015-04-02
添加可以直接拿一个Actor句柄发送消息,然后通过匹配弹出消息.

2015-03-19
添加消息传递的右值优化.

2015-02-11
添加定时清理Actor栈池.

2015-02-05
增加外部可以直接拿另一个Actor句柄创建一个消息管道或通知句柄.

2015-02-01
添加socket测试示例.

2015-01-26
修改了定时器在高版本VS下因与STL库冲突导致的编译错误问题;
增加异步触发和消息等待的超时处理功能.

2015-01-08
修改了挂起/恢复控制逻辑,原有逻辑在极端情况下存在安全风险.

cpp-actor-framework's People

Contributors

ham-2015 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.