Sha256: 0861b227f690c2871100cbe0f2c17f2e7640bfe7913bb27d0d0d3862b2dd209f

Contents?: true

Size: 833 Bytes

Versions: 3

Compression:

Stored size: 833 Bytes

Contents

# :include: rdoc/GDC
#
# == Other Info
# 
# Version:: $Id: GDC.rb,v 1.4 2010/02/03 05:11:40 colbygk Exp $
# Author:: Colby Gutierrez-Kraybill <colby(at)astro.berkeley.edu>

require 'monitor'

module Log4r
  GDCNAME = "log4rGDC"
  $globalGDCLock = Monitor.new

  # See log4r/GDC.rb
  class GDC < Monitor
    private_class_method :new

    def self.clear()
      Thread.main[GDCNAME] = ""
    end

    def self.get()
      $globalGDCLock.synchronize do
	if ( Thread.main[GDCNAME] == nil ) then
	  Thread.main[GDCNAME] = $0
	end
      end
      return Thread.main[GDCNAME]
    end

    def self.set( a_name )
      if ( Thread.current != Thread.main ) then
	raise "Can only initialize Global Diagnostic Context from Thread.main" 
      end
      $globalGDCLock.synchronize do
	Thread.main[GDCNAME] = a_name
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
log4r-1.1.7 src/log4r/GDC.rb
log4r-1.1.6 src/log4r/GDC.rb
log4r-1.1.5 src/log4r/GDC.rb