static int init_common(void) { int ret; /* Initialize the CRT debug allocator first, before our first malloc */ #if defined(GIT_MSVC_CRTDBG) git_win32__crtdbg_stacktrace_init(); git_win32__stack_init(); #endif /* Initialize any other subsystems that have global state */ if ((ret = git_allocator_global_init()) == 0 && (ret = git_hash_global_init()) == 0 && (ret = git_sysdir_global_init()) == 0 && (ret = git_filter_global_init()) == 0 && (ret = git_merge_driver_global_init()) == 0 && (ret = git_transport_ssh_global_init()) == 0 && (ret = git_openssl_stream_global_init()) == 0 && (ret = git_curl_stream_global_init()) == 0 && (ret = git_mbedtls_stream_global_init()) == 0) ret = git_mwindow_global_init(); GIT_MEMORY_BARRIER; return ret; }
static void init_once(void) { if ((init_error = git_mutex_init(&git__mwindow_mutex)) != 0) return; pthread_key_create(&_tls_key, &cb__free_status); /* Initialize any other subsystems that have global state */ if ((init_error = git_hash_global_init()) >= 0) init_error = git_sysdir_global_init(); GIT_MEMORY_BARRIER; }
static int synchronized_threads_init(void) { int error; _tls_index = TlsAlloc(); if (git_mutex_init(&git__mwindow_mutex)) return -1; /* Initialize any other subsystems that have global state */ if ((error = git_hash_global_init()) >= 0) error = git_sysdir_global_init(); win32_pthread_initialize(); return error; }