diff --git a/adapter/uhdf2/manager/src/devmgr_uevent.c b/adapter/uhdf2/manager/src/devmgr_uevent.c index 02309dfcef8c6ed90c1ea759ab6232d81eca3343..461dbcf4526867e2f46cafcd8adc4a9a665eb740 100644 --- a/adapter/uhdf2/manager/src/devmgr_uevent.c +++ b/adapter/uhdf2/manager/src/devmgr_uevent.c @@ -555,7 +555,7 @@ int32_t DevMgrUeventReceiveStart(void) struct OsalThreadParam threadCfg; (void)memset_s(&threadCfg, sizeof(threadCfg), 0, sizeof(threadCfg)); - threadCfg.name = "DevMgrUeventThread"; + threadCfg.name = "DevMgrUevent"; threadCfg.priority = OSAL_THREAD_PRI_HIGH; threadCfg.stackSize = DEVMGR_UEVENT_STACK_SIZE; diff --git a/framework/core/adapter/syscall/src/hdf_syscall_adapter.c b/framework/core/adapter/syscall/src/hdf_syscall_adapter.c index efc560addbec0656c8ee0376a3721dd5fb324363..f1228a6ed27f33de40bceda7de03e54019182bc0 100644 --- a/framework/core/adapter/syscall/src/hdf_syscall_adapter.c +++ b/framework/core/adapter/syscall/src/hdf_syscall_adapter.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -34,6 +35,9 @@ #define TIMEOUT_US 100000 // 100ms #define LOAD_IOSERVICE_WAIT_TIME 10 // ms #define LOAD_IOSERVICE_WAIT_COUNT 20 // ms +#define THREAD_NAME_LEN_MAX 16 + +atomic_int g_evtListenerCount = 0; static bool HaveOnlyOneElement(const struct DListHead *head) { @@ -440,9 +444,15 @@ static int32_t HdfDevListenerThreadStart(struct HdfDevListenerThread *thread) return HDF_ERR_IO; } } + char threadName[THREAD_NAME_LEN_MAX] = {0}; + ret = sprintf_s(threadName, THREAD_NAME_LEN_MAX, "%s%d", "event_listen", g_evtListenerCount++); + if (ret < 0) { + HDF_LOGE("%{public}s generate thread name failed", __func__); + return HDF_FAILURE; + } struct OsalThreadParam config = { - .name = "hdf_event_listener", + .name = threadName, .priority = OSAL_THREAD_PRI_DEFAULT, .stackSize = 0, }; diff --git a/framework/support/posix/src/osal_thread.c b/framework/support/posix/src/osal_thread.c index 4ecc88f26ef5f8c2198e149585994db4620e48cc..37294b0e354185f1e3f6bebe1d8247947874d6c4 100644 --- a/framework/support/posix/src/osal_thread.c +++ b/framework/support/posix/src/osal_thread.c @@ -7,6 +7,7 @@ */ #include "osal_thread.h" +#include #include #include "hdf_base.h" #include "hdf_log.h" @@ -18,6 +19,7 @@ #endif #define HDF_LOG_TAG osal_thread +#define THREAD_NAME_LEN_MAX 16 typedef void *(*PosixEntry)(void *data); @@ -87,13 +89,21 @@ int32_t OsalThreadDestroy(struct OsalThread *thread) return HDF_SUCCESS; } -static int OsalCreatePthread(pthread_t *threadId, pthread_attr_t *attribute, struct ThreadWrapper *para) +static int OsalCreatePthread(pthread_t *threadId, pthread_attr_t *attribute, struct ThreadWrapper *para, char *name) { + char threadName[THREAD_NAME_LEN_MAX] = {0}; + int resultCode = pthread_create(threadId, attribute, (PosixEntry)para->threadEntry, para->entryPara); if (resultCode != 0) { HDF_LOGE("pthread_create errorno: %d", resultCode); return resultCode; } + if (name != NULL) { + resultCode = strncpy_s(threadName, THREAD_NAME_LEN_MAX, name, THREAD_NAME_LEN_MAX - 1); + if (resultCode == EOK) { + pthread_setname_np(*threadId, threadName); + } + } resultCode = pthread_detach(*threadId); if (resultCode != 0) { HDF_LOGE("pthread_detach errorno: %d", resultCode); @@ -149,7 +159,7 @@ int32_t OsalThreadStart(struct OsalThread *thread, const struct OsalThreadParam goto DEAL_FAIL; } - resultCode = OsalCreatePthread(¶->id, &attribute, thread->realThread); + resultCode = OsalCreatePthread(¶->id, &attribute, thread->realThread, param->name); if (resultCode != 0) { HDF_LOGE("OsalCreatePthread errorno: %d", resultCode); goto DEAL_FAIL; @@ -160,4 +170,3 @@ DEAL_FAIL: (void)OsalThreadDestroy(thread); return HDF_FAILURE; } -