Spaces:
Runtime error
Runtime error
struct Foo | |
{ | |
__host__ __device__ | |
Foo(void) | |
:set_me_upon_destruction(0) | |
{} | |
__host__ __device__ | |
~Foo(void) | |
{ | |
// __device__ overload | |
if(set_me_upon_destruction != 0) | |
*set_me_upon_destruction = true; | |
} | |
bool *set_me_upon_destruction; | |
}; | |
void TestDeviceDeleteDestructorInvocation(void) | |
{ | |
KNOWN_FAILURE; | |
// | |
// thrust::device_vector<bool> destructor_flag(1, false); | |
// | |
// thrust::device_ptr<Foo> foo_ptr = thrust::device_new<Foo>(); | |
// | |
// Foo exemplar; | |
// exemplar.set_me_upon_destruction = thrust::raw_pointer_cast(&destructor_flag[0]); | |
// *foo_ptr = exemplar; | |
// | |
// ASSERT_EQUAL(false, destructor_flag[0]); | |
// | |
// thrust::device_delete(foo_ptr); | |
// | |
// ASSERT_EQUAL(true, destructor_flag[0]); | |
} | |
DECLARE_UNITTEST(TestDeviceDeleteDestructorInvocation); | |