module Ethon::Curl

def cleanup

for details of how to use this function.
See the description in libcurl of global environment requirements
any other thread that uses these other libraries.
libraries that are similarly thread unsafe, it could conflict with
mean no other thread that is using libcurl. Because curl_global_cleanup calls functions of other
program (i.e. a thread sharing the same memory) is running. This doesn't just
This function is not thread safe. You must not call it when any other thread in the
curl_global_init, after you are done using libcurl.
You should call curl_global_cleanup once for each call you make to
This function releases resources acquired by curl_global_init.
def cleanup
  @@curl_mutex.synchronize {
    if @@initialized
      Curl.global_cleanup()
      @@initialized = false
      Ethon.logger.debug("ETHON: Libcurl cleanup") if Ethon.logger
    end
  }
end