1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /*
- * This header should be included by tests, rather than directly including
- * jemalloc/jemalloc.h, because --with-install-suffix may cause the header to
- * have a different name.
- */
- #include "jemalloc/jemalloc@install_suffix@.h"
- #include "jemalloc/internal/jemalloc_internal.h"
- /* Abstraction layer for threading in tests */
- #ifdef _WIN32
- #include <windows.h>
- typedef HANDLE je_thread_t;
- void
- je_thread_create(je_thread_t *thread, void *(*proc)(void *), void *arg)
- {
- LPTHREAD_START_ROUTINE routine = (LPTHREAD_START_ROUTINE)proc;
- *thread = CreateThread(NULL, 0, routine, arg, 0, NULL);
- if (*thread == NULL) {
- malloc_printf("Error in CreateThread()\n");
- exit(1);
- }
- }
- void
- je_thread_join(je_thread_t thread, void **ret)
- {
- WaitForSingleObject(thread, INFINITE);
- }
- #else
- #include <pthread.h>
- typedef pthread_t je_thread_t;
- void
- je_thread_create(je_thread_t *thread, void *(*proc)(void *), void *arg)
- {
- if (pthread_create(thread, NULL, proc, arg) != 0) {
- malloc_printf("Error in pthread_create()\n");
- exit(1);
- }
- }
- void
- je_thread_join(je_thread_t thread, void **ret)
- {
- pthread_join(thread, ret);
- }
- #endif
|