// -*-c++-*-
//
// Autogenerated by mktfork_ag.pl
//

#ifndef _LIBTAME_TAME_TFORK_AG_H_
#define _LIBTAME_TAME_TFORK_AG_H_ 1

template<class R1> void
_tfork (ptr<closure_t> c, const char *loc, rendezvous_t<> &rv, R1 &r1, typename callback<R1, void>::ref a)
{
  __tfork (loc, _mkevent (c, loc, rv), r1, a);
}

template<class W1> void
_tfork (ptr<closure_t> c, const char *loc, rendezvous_t<W1> &rv, const W1 &w1, typename callback<void>::ref a)
{
  __tfork (loc, _mkevent (c, loc, rv, w1), a);
}

template<class R1, class W1> void
_tfork (ptr<closure_t> c, const char *loc, rendezvous_t<W1> &rv, const W1 &w1, R1 &r1, typename callback<R1, void>::ref a)
{
  __tfork (loc, _mkevent (c, loc, rv, w1), r1, a);
}

template<class W1, class W2> void
_tfork (ptr<closure_t> c, const char *loc, rendezvous_t<W1, W2> &rv, const W1 &w1, const W2 &w2, typename callback<void>::ref a)
{
  __tfork (loc, _mkevent (c, loc, rv, w1, w2), a);
}

template<class R1, class W1, class W2> void
_tfork (ptr<closure_t> c, const char *loc, rendezvous_t<W1, W2> &rv, const W1 &w1, const W2 &w2, R1 &r1, typename callback<R1, void>::ref a)
{
  __tfork (loc, _mkevent (c, loc, rv, w1, w2), r1, a);
}

template<class W1, class W2, class W3> void
_tfork (ptr<closure_t> c, const char *loc, rendezvous_t<W1, W2, W3> &rv, const W1 &w1, const W2 &w2, const W3 &w3, typename callback<void>::ref a)
{
  __tfork (loc, _mkevent (c, loc, rv, w1, w2, w3), a);
}

template<class R1, class W1, class W2, class W3> void
_tfork (ptr<closure_t> c, const char *loc, rendezvous_t<W1, W2, W3> &rv, const W1 &w1, const W2 &w2, const W3 &w3, R1 &r1, typename callback<R1, void>::ref a)
{
  __tfork (loc, _mkevent (c, loc, rv, w1, w2, w3), r1, a);
}

#endif //_LIBTAME_TAME_TFORK_AG_H_ 1
