|
@@ -559,6 +559,12 @@ static inline int _starpu_worker_get_id(void)
|
|
|
#define starpu_worker_get_id _starpu_worker_get_id
|
|
|
|
|
|
/* Similar behaviour to starpu_worker_get_id() but fails when called from outside a worker */
|
|
|
-unsigned _starpu_worker_get_id_check(void);
|
|
|
+static inline unsigned __starpu_worker_get_id_check(char *f, int l)
|
|
|
+{
|
|
|
+ int id = starpu_worker_get_id();
|
|
|
+ STARPU_ASSERT_MSG(id>=0, "%s:%u Cannot be called from outside a worker\n", f, l);
|
|
|
+ return id;
|
|
|
+}
|
|
|
+#define _starpu_worker_get_id_check() __starpu_worker_get_id_check(__FILE__, __LINE__)
|
|
|
|
|
|
#endif // __WORKERS_H__
|