Esempio n. 1
0
int w32_thread_create( w32_thread_t*        thread_handle,
                       security_attr_t*     attr,
                       unsigned             (__stdcall *start_routine)(void*),
                       void*                arg
                       )
{
    if ( !start_routine || !thread_handle )
        return -1;

    /*
     * 常識的に考えた結果、_beginthreadex 関数を使うハメになる。
     */
    *thread_handle  = __REINTERPRET_CAST(w32_thread_t, _beginthreadex( attr,
                                                                       0,
                                                                       start_routine,
                                                                       arg,
                                                                       0,
                                                                       NULL
                                                                       )
                                         );

    return *thread_handle != 0? 0: -1;
}
Esempio n. 2
0
w32_thread_t w32_get_current_thread()
{
    return __REINTERPRET_CAST( w32_thread_t, GetCurrentThread() );
}
 size_t operator()(const void* p) const
 {
     return __REINTERPRET_CAST(size_t,p);
 }