summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/ecore/Ecore_Common.h14
-rw-r--r--src/lib/ecore/ecore_thread.c13
2 files changed, 27 insertions, 0 deletions
diff --git a/src/lib/ecore/Ecore_Common.h b/src/lib/ecore/Ecore_Common.h
index 899debc267..af4950c6cd 100644
--- a/src/lib/ecore/Ecore_Common.h
+++ b/src/lib/ecore/Ecore_Common.h
@@ -2081,6 +2081,20 @@ EAPI void ecore_thread_max_reset(void);
EAPI int ecore_thread_available_get(void);
/**
+ * Sets the name of a given thread for debugging purposes.
+ *
+ * This function will only succeed if called from the named thread.
+ *
+ * @param thread The thread context to set the name of
+ * @param name The string to name the thread - this cannot be NULL
+ *
+ * @return EINA_TRUE if it succeeds setting the name or EINA_FALSE otherwise.
+ *
+ * @since 1.26
+ */
+EAPI Eina_Bool ecore_thread_name_set(Ecore_Thread *thread, const char *name);
+
+/**
* Adds some data to a hash local to the thread.
*
* @param thread The thread context the data belongs to
diff --git a/src/lib/ecore/ecore_thread.c b/src/lib/ecore/ecore_thread.c
index f38c7880c1..c112b77676 100644
--- a/src/lib/ecore/ecore_thread.c
+++ b/src/lib/ecore/ecore_thread.c
@@ -1238,6 +1238,19 @@ ecore_thread_available_get(void)
}
EAPI Eina_Bool
+ecore_thread_name_set(Ecore_Thread *thread, const char *name)
+{
+ Ecore_Pthread_Worker *work = (Ecore_Pthread_Worker *) thread;
+
+ if ((!work) || (!work->self) || (!name))
+ return EINA_FALSE;
+
+ if (eina_thread_self() != work->self) return EINA_FALSE;
+
+ return eina_thread_name_set(work->self, name);
+}
+
+EAPI Eina_Bool
ecore_thread_local_data_add(Ecore_Thread *thread,
const char *key,
void *value,