static int destructed;
static int destructed2;
class Test {
public:
Test() { printf("Test::Test()\n"); }
~Test() { printf("Test::~Test()\n"); destructed = 1; }
};
void
cleanup_handler(void *arg __unused)
{
destructed2 = 1;
printf("%s()\n", __func__);
}
void
check_destruct(void)
{
if (!destructed)
printf("Bug, object destructor is not called\n");
else
printf("OK\n");
}
void
check_destruct2(void)
{
if (!destructed)
printf("Bug, object destructor is not called\n");
else if (!destructed2)
printf("Bug, cleanup handler is not called\n");
else
printf("OK\n");
}