actor-framework / actor-framework/benchmarks
Add Mindroid benchmark
- Dominant language
- C++
- Stars
- 26
- Forks
- 15
- PR merge metrics
- No merged PRs in 30d
Description
[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
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.