#include "async.h"

typedef struct {
  int x, y, z;
} foo;


void
printfoo(ref<foo> p)
{
  warn << "x : " << p->x << "\n";
  warn << "y : " << p->y << "\n";
  warn << "z : " << p->z << "\n";
  exit(0);
}


int
main(int argc, char *argv[])
{
  async_init();
  // ordinary C++ type
  ref<int> tmg = New refcounted<int>;
  *tmg = 3;

  // fancy type
  ref<foo> bar = New refcounted<foo>;
  bar->x = 1;
  bar->y = 2;
  bar->z = 3;

  delaycb(1, 0, wrap(printfoo, bar));

  amain();
}
