actor-framework / actor-framework/benchmarks

Add Mindroid benchmark

未关闭
#1 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
idea
主要语言
C++
星标
26
派生
15
PR 合并指标
30 天内没有已合并 PR

描述

[Mindroid](https://github.com/Himmele/Mindroid) seems to offer actor-like semantics as well. It would be nice to compare against it at some point. Here is a hello world example:

```
#include
#include "mindroid/os/Message.h"
#include "mindroid/os/Handler.h"
#include "mindroid/os/LooperThread.h"

using namespace mindroid;

static const int SAY_HELLO = 0;
static const int SAY_WORLD = 1;
static const int QUIT = 2;

class HelloHandler : public Handler
{
public:
HelloHandler(const sp& worldHandler) :
mWorldHandler(worldHandler), mCounter(0) {}

virtual void handleMessage(const sp& msg) {
switch (msg->what) {
case SAY_HELLO:
mCounter++;
if (mCounter <= 1000) {
printf("Hello ");
sp sayWorld =
mWorldHandler->obtainMessage(SAY_WORLD);
sayWorld->metaData()->putObject("SayHello",
obtainMessage(SAY_HELLO));
sayWorld->sendToTarget();
} else {
mWorldHandler->obtainMessage(QUIT)
->sendToTarget();
Looper::myLooper()->quit();
}
break;
}
}

private:
sp mWorldHandler;
int mCounter;
};

class WorldHandler : public Handler
{
public:
virtual void handleMessage(const sp& msg) {
switch (msg->what) {
case SAY_WORLD:
printf("World!\n");
msg->metaData()
->getObject("SayHello")
->sendToTarget();
break;
case QUIT:
Looper::myLooper()->quit();
break;
}
}
};

int main() {
sp< LooperThread > wlt =
new LooperThread();
wlt->start();

Looper::prepare();
sp hh = new HelloHandler(wlt->getHandler());
hh->obtainMessage(SAY_HELLO)->sendToTarget();
Looper::loop();

return 0;
}
```

Source: http://himmele.blogspot.de/2012/11/concurrent-hello-world-in-go-erlang.html

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。