static int finalize() { static bool finalized = false; if (finalized) return 0; finalized = true; gstate.quit_activities(); #ifdef _WIN32 shutdown_idle_monitor(); #ifdef USE_WINSOCK if (WinsockCleanup()) { log_message_error("WinSockCleanup() failed"); return ERR_IO; } #endif cleanup_system_monitor(); #endif curl_cleanup(); #ifdef _DEBUG gstate.free_mem(); #endif diagnostics_finish(); gstate.cleanup_completed = true; return 0; }
static int finalize() { static bool finalized = false; if (finalized) return 0; finalized = true; gstate.quit_activities(); daily_xfer_history.write_state(); #ifdef _WIN32 shutdown_idle_monitor(); #ifdef USE_WINSOCK if (WinsockCleanup()) { log_message_error("Failed to cleanup the Windows Sockets interface"); return ERR_IO; } #endif cleanup_system_monitor(); #endif curl_cleanup(); gstate.free_mem(); gstate.cleanup_completed = true; return 0; }