#include <boost/test/included/prg_exec_monitor.hpp>
#include <boost/test/execution_monitor.hpp>
#include <exception>
#include <iostream>
#include <ostream>
using namespace std;
void myterminate ()
{
cerr << "terminate handler called\n";
}
int terminator()
{
terminate();
}
int cpp_main( int, char* [] )
{
set_terminate(myterminate);
boost::execution_monitor m;
try
{
m.execute(terminator);
}
catch ( boost::execution_exception const& ex )
{
cout << "Caught exception: " << ex.what() << endl;
}
cout << "Alive!" << endl;
return 0;
}
I2luY2x1ZGUgPGJvb3N0L3Rlc3QvaW5jbHVkZWQvcHJnX2V4ZWNfbW9uaXRvci5ocHA+IAojaW5jbHVkZSA8Ym9vc3QvdGVzdC9leGVjdXRpb25fbW9uaXRvci5ocHA+CiNpbmNsdWRlIDxleGNlcHRpb24+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPG9zdHJlYW0+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp2b2lkIG15dGVybWluYXRlICgpCnsKICBjZXJyIDw8ICJ0ZXJtaW5hdGUgaGFuZGxlciBjYWxsZWRcbiI7Cn0KaW50IHRlcm1pbmF0b3IoKQp7CiAgICB0ZXJtaW5hdGUoKTsKfQppbnQgY3BwX21haW4oIGludCwgY2hhciogW10gKQp7CiAgICBzZXRfdGVybWluYXRlKG15dGVybWluYXRlKTsKICAgIGJvb3N0OjpleGVjdXRpb25fbW9uaXRvciBtOwogICAgdHJ5CiAgICB7CiAgICAgICAgbS5leGVjdXRlKHRlcm1pbmF0b3IpOwogICAgfQogICAgY2F0Y2ggKCBib29zdDo6ZXhlY3V0aW9uX2V4Y2VwdGlvbiBjb25zdCYgZXggKQogICAgewogICAgICAgIGNvdXQgPDwgIkNhdWdodCBleGNlcHRpb246ICIgPDwgZXgud2hhdCgpIDw8IGVuZGw7CiAgICB9CiAgICBjb3V0IDw8ICJBbGl2ZSEiIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQog