module Ethon::Curl

Experimental RBS support (using type sampling data from the type_fusion project).

# sig/ethon/curl.rbs

module Ethon::Curl
  def init: () -> (nil | true | Integer)
end

def self.windows?

:nodoc:
def self.windows?
  Libc.windows?
end

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

def init

Experimental RBS support (using type sampling data from the type_fusion project).

def init: () -> (nil | true | Integer)

This signature was generated using 34 samples from 3 applications.

Raises:
  • (Ethon::Errors::GlobalInit) - If Curl.global_init fails.
def init
  @@curl_mutex.synchronize {
    if not @@initialized
      raise Errors::GlobalInit.new if Curl.global_init(GLOBAL_ALL) != 0
      @@initialized = true
      Ethon.logger.debug("ETHON: Libcurl initialized") if Ethon.logger
    end
  }
end