typedef struct pool_thread_data thread_data;
/* Initializes scheduler. Must be called before any kernel enqueue */
-void pthread_scheduler_init (cl_device_id device);
+cl_int pthread_scheduler_init (cl_device_id device);
void pthread_scheduler_uninit ();
device->num_partition_types = 0;
device->partition_type = NULL;
+ cl_int ret = CL_SUCCESS;
if (!scheduler_initialized)
{
- scheduler_initialized = 1;
pocl_init_dlhandle_cache();
pocl_init_kernel_run_command_manager();
- pthread_scheduler_init (device);
+ ret = pthread_scheduler_init (device);
+ if (ret == CL_SUCCESS)
+ {
+ scheduler_initialized = 1;
+ }
}
- return CL_SUCCESS;
+
+ return ret;
}
cl_int
d->current_kernel = NULL;
device->data = d;
+ cl_int ret = CL_SUCCESS;
if (!scheduler_initialized)
{
- pthread_scheduler_init (device);
- scheduler_initialized = 1;
+ ret = pthread_scheduler_init (device);
+ if (ret == CL_SUCCESS)
+ {
+ scheduler_initialized = 1;
+ }
}
- return CL_SUCCESS;
+ return ret;
}
void