actor-framework / actor-framework/benchmarks

Add Mindroid benchmark

オープン
#1 コメント 0 件 リアクション 0 件 担当者 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 を短くまとめたダイジェスト。