• Davis King's avatar
    Changed the windows signaler and mutex code to use the C++11 thread library instead of · 0ff862ae
    Davis King authored
    the old win32 functions.  I did this to work around how windows unloads dlls.  In particular, during dll unload
    windows will kill all threads, THEN it will destruct global objects.  So this leads to problems
    where a global obejct that owns threads tries to tell them to shutdown and everything goes wrong.
    The specific problem this code change fixes is when signaler::broadcast() is called
    on a signaler that was being waited on by one of these abruptly killed threads.  In that case, the old
    code would deadlock inside signaler::broadcast().  This new code doesn't seem to have that problem,
    thereby mitigating the windows dll unload behavior in some situations.
    0ff862ae
Name
Last commit
Last update
..
async.cpp Loading commit data...
async.h Loading commit data...
async_abstract.h Loading commit data...
auto_mutex_extension.h Loading commit data...
auto_mutex_extension_abstract.h Loading commit data...
auto_unlock_extension.h Loading commit data...
auto_unlock_extension_abstract.h Loading commit data...
create_new_thread_extension.h Loading commit data...
create_new_thread_extension_abstract.h Loading commit data...
multithreaded_object_extension.cpp Loading commit data...
multithreaded_object_extension.h Loading commit data...
multithreaded_object_extension_abstract.h Loading commit data...
parallel_for_extension.h Loading commit data...
parallel_for_extension_abstract.h Loading commit data...
posix.h Loading commit data...
read_write_mutex_extension.h Loading commit data...
read_write_mutex_extension_abstract.h Loading commit data...
rmutex_extension.h Loading commit data...
rmutex_extension_abstract.h Loading commit data...
rsignaler_extension.h Loading commit data...
rsignaler_extension_abstract.h Loading commit data...
thread_function_extension.h Loading commit data...
thread_function_extension_abstract.h Loading commit data...
thread_pool_extension.cpp Loading commit data...
thread_pool_extension.h Loading commit data...
thread_pool_extension_abstract.h Loading commit data...
thread_specific_data_extension.h Loading commit data...
thread_specific_data_extension_abstract.h Loading commit data...
threaded_object_extension.cpp Loading commit data...
threaded_object_extension.h Loading commit data...
threaded_object_extension_abstract.h Loading commit data...
threads_kernel.h Loading commit data...
threads_kernel_1.cpp Loading commit data...
threads_kernel_1.h Loading commit data...
threads_kernel_2.cpp Loading commit data...
threads_kernel_2.h Loading commit data...
threads_kernel_abstract.h Loading commit data...
threads_kernel_shared.cpp Loading commit data...
threads_kernel_shared.h Loading commit data...
windows.h Loading commit data...