actor-framework / actor-framework/benchmarks

Add Mindroid benchmark

Ouverte
#1 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
idea
Langage dominant
C++
Étoiles
26
Forks
15
Métriques de merge des PR
Aucune PR mergée en 30 j

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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.