Skip to content

Commit

Permalink
windows: remove most pthread lifetime shim functions
Browse files Browse the repository at this point in the history
Remove most of the pthread_xxx lifetime shim functions, only
pthread_create remains while we wait for rte_ctrl_thread_create removal.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Signed-off-by: 0-day Robot <robot@bytheb.org>
  • Loading branch information
Tyler Retzlaff authored and ovsrobot committed Mar 17, 2023
1 parent 1563a1f commit 3bcc39e
Showing 1 changed file with 0 additions and 99 deletions.
99 changes: 0 additions & 99 deletions lib/eal/windows/include/pthread.h
Expand Up @@ -42,92 +42,6 @@ typedef SYNCHRONIZATION_BARRIER pthread_barrier_t;
!DeleteSynchronizationBarrier(barrier)
#define pthread_cancel(thread) !TerminateThread((HANDLE) thread, 0)

/* pthread function overrides */
#define pthread_self() \
((pthread_t)GetCurrentThreadId())


static inline int
pthread_equal(pthread_t t1, pthread_t t2)
{
return t1 == t2;
}

static inline int
pthread_setaffinity_np(pthread_t threadid, size_t cpuset_size,
rte_cpuset_t *cpuset)
{
DWORD_PTR ret = 0;
HANDLE thread_handle;

if (cpuset == NULL || cpuset_size == 0)
return -1;

thread_handle = OpenThread(THREAD_ALL_ACCESS, FALSE, threadid);
if (thread_handle == NULL) {
RTE_LOG_WIN32_ERR("OpenThread()");
return -1;
}

ret = SetThreadAffinityMask(thread_handle, *cpuset->_bits);
if (ret == 0) {
RTE_LOG_WIN32_ERR("SetThreadAffinityMask()");
goto close_handle;
}

close_handle:
if (CloseHandle(thread_handle) == 0) {
RTE_LOG_WIN32_ERR("CloseHandle()");
return -1;
}
return (ret == 0) ? -1 : 0;
}

static inline int
pthread_getaffinity_np(pthread_t threadid, size_t cpuset_size,
rte_cpuset_t *cpuset)
{
/* Workaround for the lack of a GetThreadAffinityMask()
*API in Windows
*/
DWORD_PTR prev_affinity_mask;
HANDLE thread_handle;
DWORD_PTR ret = 0;

if (cpuset == NULL || cpuset_size == 0)
return -1;

thread_handle = OpenThread(THREAD_ALL_ACCESS, FALSE, threadid);
if (thread_handle == NULL) {
RTE_LOG_WIN32_ERR("OpenThread()");
return -1;
}

/* obtain previous mask by setting dummy mask */
prev_affinity_mask = SetThreadAffinityMask(thread_handle, 0x1);
if (prev_affinity_mask == 0) {
RTE_LOG_WIN32_ERR("SetThreadAffinityMask()");
goto close_handle;
}

/* set it back! */
ret = SetThreadAffinityMask(thread_handle, prev_affinity_mask);
if (ret == 0) {
RTE_LOG_WIN32_ERR("SetThreadAffinityMask()");
goto close_handle;
}

memset(cpuset, 0, cpuset_size);
*cpuset->_bits = prev_affinity_mask;

close_handle:
if (CloseHandle(thread_handle) == 0) {
RTE_LOG_WIN32_ERR("SetThreadAffinityMask()");
return -1;
}
return (ret == 0) ? -1 : 0;
}

static inline int
pthread_create(void *threadid, const void *threadattr, void *threadfunc,
void *args)
Expand All @@ -144,19 +58,6 @@ pthread_create(void *threadid, const void *threadattr, void *threadfunc,
return ((hThread != NULL) ? 0 : E_FAIL);
}

static inline int
pthread_detach(__rte_unused pthread_t thread)
{
return 0;
}

static inline int
pthread_join(__rte_unused pthread_t thread,
__rte_unused void **value_ptr)
{
return 0;
}

static inline int
pthread_mutex_init(pthread_mutex_t *mutex,
__rte_unused pthread_mutexattr_t *attr)
Expand Down

0 comments on commit 3bcc39e

Please sign in to comment.