eina: try to fix my own mess.

SVN revision: 78585
This commit is contained in:
Cedric BAIL 2012-10-28 12:10:36 +00:00
parent ff70ee29df
commit 5fd68084c9
1 changed files with 5 additions and 8 deletions

View File

@ -41,7 +41,7 @@ typedef struct _Eina_Thread_Win32 Eina_Thread_Win32;
struct _Eina_Thread_Win32
{
HANDLE thread;
Eina_Thread_Cb func;
void *(*func)(void *data);
void *data;
void *ret;
@ -94,7 +94,7 @@ _eina_thread_win32_cb(LPVOID lpParam)
{
Eina_Thread_Win32 *tw = lpParam;
tw->ret = tw->func(tw->data, tw->index);
tw->ret = tw->func(tw->data);
return 0;
}
@ -102,7 +102,7 @@ _eina_thread_win32_cb(LPVOID lpParam)
static Eina_Bool
_eina_thread_win32_create(Eina_Thread *t,
int affinity,
Eina_Thread_Cb func,
void *(*func)(void *data),
const void *data)
{
Eina_Thread_Win32 *tw;
@ -127,17 +127,14 @@ _eina_thread_win32_create(Eina_Thread *t,
tw->thread = CreateThread(NULL, 0, _eina_thread_win32_cb, tw, 0, NULL);
if (!tw->thread) goto on_error;
if (!SetThreadAffinityMask(tw->thread, 1 << affinity))
goto close_thread;
/* affinity is an hint, if we fail, we continue without */
SetThreadAffinityMask(tw->thread, 1 << affinity);
_thread_running = eina_list_append(_thread_running, tw);
*t = tw->index;
return EINA_TRUE;
close_thread:
CloseHandle(tw->thread);
tw->thread = NULL;
on_error:
_thread_pool = eina_list_append(_thread_pool, tw);
return EINA_FALSE;