[PATCH 72/90] pthread: add return code to pthread_scheduler_init()
authorAndreas Beckmann <anbe@debian.org>
Fri, 26 Nov 2021 13:02:56 +0000 (14:02 +0100)
committerAndreas Beckmann <anbe@debian.org>
Fri, 7 Jan 2022 23:55:22 +0000 (23:55 +0000)
Gbp-Pq: Name 0072-pthread-add-return-code-to-pthread_scheduler_init.patch

lib/CL/devices/pthread/pocl-pthread_scheduler.h
lib/CL/devices/pthread/pthread.c
lib/CL/devices/pthread/pthread_scheduler.c

index e96980be08b2502a5d0e34879f2325a1cd220a83..d56709d77fd95982c2222ceb2a6a034ba4ac7b34 100644 (file)
@@ -36,7 +36,7 @@
 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 ();
 
index 444d7dc9eb2ed5080af7c9ec601c733687cfd79b..e66d76e075cf49e029a1dafda511c250eb74c18c 100644 (file)
@@ -208,14 +208,19 @@ pocl_pthread_init (unsigned j, cl_device_id device, const char* parameters)
   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
@@ -246,13 +251,17 @@ pocl_pthread_reinit (unsigned j, cl_device_id device)
   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
index d3a895861ac2934d8ac8c594bab08c6a74ebf568..d57f7c97a5b843b38fff7bb15685b475204bdb9d 100644 (file)
@@ -81,7 +81,7 @@ typedef struct scheduler_data_
 
 static scheduler_data scheduler;
 
-void
+cl_int
 pthread_scheduler_init (cl_device_id device)
 {
   unsigned i;
@@ -114,6 +114,7 @@ pthread_scheduler_init (cl_device_id device)
                                      (void *)&scheduler.thread_pool[i]));
     }
 
+  return CL_SUCCESS;
 }
 
 void