Class: Appsignal::Hooks::GvlHook Private

Inherits:
Hook show all
Defined in:
lib/appsignal/hooks/gvl.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Instance Method Summary collapse

Methods inherited from Hook

#initialize, #installed?, register, #try_to_install

Constructor Details

This class inherits a constructor from Appsignal::Hooks::Hook

Instance Method Details

#dependencies_present?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


9
10
11
12
13
14
15
16
# File 'lib/appsignal/hooks/gvl.rb', line 9

def dependencies_present?
  return false if Appsignal::System.jruby?

  require "gvltools"
  Appsignal.config && Appsignal::Probes::GvlProbe.dependencies_present?
rescue LoadError
  false
end

#installObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



18
19
20
21
22
# File 'lib/appsignal/hooks/gvl.rb', line 18

def install
  Appsignal::Probes.register :gvl, Appsignal::Probes::GvlProbe
  ::GVLTools::GlobalTimer.enable if Appsignal.config[:enable_gvl_global_timer]
  ::GVLTools::WaitingThreads.enable if Appsignal.config[:enable_gvl_waiting_threads]
end