• hf@deer.(none)'s avatar
    Fix for #1890 and #1959 · 431a66e8
    hf@deer.(none) authored
    This bug happens under Windows & Embedded server
    Reason is that pthread_self() always returns NULL in this case.
    This confuses thr_lock function and it doesn't stop
    thread inserting in the write-locked table.
    
    Global problem is that there's no way under Windows to get
    unique thread handle for working thread.
    Monty made a workaround for server - we store the thread's handle
    we get when we create thread in the thread-specific variable.
    This doesn't work with the embedded library for we don't control
    thread creation there.
    
    I added code that sets CurrentThreadId as the pthread_self
    for the embedded library.
    It seems to solve problem because it's unique and we don't use
    pthread_self as a parameter for thread functions in embedded library. 
    431a66e8
my_thr_init.c 7.24 KB