]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libgomp/plugin/plugin-gcn.c: async-queue init - fix function-return type and fail...
authorTobias Burnus <tburnus@baylibre.com>
Mon, 18 Nov 2024 13:58:21 +0000 (14:58 +0100)
committerTobias Burnus <tburnus@baylibre.com>
Mon, 18 Nov 2024 13:58:21 +0000 (14:58 +0100)
libgomp/ChangeLog:

* plugin/plugin-gcn.c (GOMP_OFFLOAD_openacc_async_construct): In
case of an error, call GOMP_PLUGIN_fatal not ..._error; use NULL
not false in return.

libgomp/plugin/plugin-gcn.c

index f2f2940de9dbaf7486a2eb6dd504414c7beed046..d26b93657bf61d0b9060cf5c36315fb68340557e 100644 (file)
@@ -4388,7 +4388,9 @@ GOMP_OFFLOAD_openacc_async_exec (void (*fn_ptr) (void *),
   gcn_exec (kernel, devaddrs, dims, targ_mem_desc, true, aq);
 }
 
-/* Create a new asynchronous thread and queue for running future kernels.  */
+/* Create a new asynchronous thread and queue for running future kernels;
+   issues a fatal error if the queue cannot be created as all callers expect
+   that the queue exists.  */
 
 struct goacc_asyncqueue *
 GOMP_OFFLOAD_openacc_async_construct (int device)
@@ -4416,18 +4418,18 @@ GOMP_OFFLOAD_openacc_async_construct (int device)
 
   if (pthread_mutex_init (&aq->mutex, NULL))
     {
-      GOMP_PLUGIN_error ("Failed to initialize a GCN agent queue mutex");
-      return false;
+      GOMP_PLUGIN_fatal ("Failed to initialize a GCN agent queue mutex");
+      return NULL;
     }
   if (pthread_cond_init (&aq->queue_cond_in, NULL))
     {
-      GOMP_PLUGIN_error ("Failed to initialize a GCN agent queue cond");
-      return false;
+      GOMP_PLUGIN_fatal ("Failed to initialize a GCN agent queue cond");
+      return NULL;
     }
   if (pthread_cond_init (&aq->queue_cond_out, NULL))
     {
-      GOMP_PLUGIN_error ("Failed to initialize a GCN agent queue cond");
-      return false;
+      GOMP_PLUGIN_fatal ("Failed to initialize a GCN agent queue cond");
+      return NULL;
     }
 
   hsa_status_t status = hsa_fns.hsa_queue_create_fn (agent->id,