#include "async.h"

class foo {
public:
  void fn(str s) {
    warn << s;
  }

  foo() {
    delaycb(1, 0, wrap(this, &foo::fn, "constructor\n"));
  }

  ~foo() {
    warn << "destructor\n";
  }
};


void
stop(foo *f)
{
  delete f;
  exit(0);
}

int
main()
{
  async_init();

  foo *bar = New foo();
  delaycb(2, 0, wrap(bar, &foo::fn, "Hello, World!\n"));
  delaycb(3, 0, wrap(stop, bar));
  amain();
}
