Module: Lich::Util::MemoryReleaser

Defined in:
documented/util/memoryreleaser.rb

Overview

Memory management module that provides automatic and manual memory release functionality Memory management module that provides automatic and manual memory release functionality.

Defined Under Namespace

Classes: Manager

Constant Summary collapse

DEFAULT_SETTINGS =

Default settings for memory releaser Default settings for memory releaser.

Examples:

MemoryReleaser::DEFAULT_SETTINGS[:auto_start] # => true
{
  auto_start: true, # Disabled by default, user must enable
  interval: 900, # default of 15 minutes
  verbose: false,
}.freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.command_queueObject (readonly)

Returns the value of attribute command_queue.



545
546
547
# File 'documented/util/memoryreleaser.rb', line 545

def command_queue
  @command_queue
end

.worker_threadObject (readonly)

Returns the value of attribute worker_thread.



547
548
549
# File 'documented/util/memoryreleaser.rb', line 547

def worker_thread
  @worker_thread
end

Class Method Details

.auto_disable!Object



577
578
579
# File 'documented/util/memoryreleaser.rb', line 577

def auto_disable!
  instance.auto_disable!
end

.auto_start!Object



573
574
575
# File 'documented/util/memoryreleaser.rb', line 573

def auto_start!
  instance.auto_start!
end

.benchmarkObject



601
602
603
# File 'documented/util/memoryreleaser.rb', line 601

def benchmark
  instance.benchmark
end

.instanceObject



549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
# File 'documented/util/memoryreleaser.rb', line 549

def instance
  @mutex ||= Mutex.new
  @mutex.synchronize {
    @instance ||= begin
      manager = Manager.new

      # Auto-start if enabled in settings
      if manager.settings[:auto_start]
        manager.start
      end

      manager
    end
  }
end

.interval!(seconds) ⇒ Object



581
582
583
# File 'documented/util/memoryreleaser.rb', line 581

def interval!(seconds)
  instance.interval!(seconds)
end

.releaseObject



589
590
591
# File 'documented/util/memoryreleaser.rb', line 589

def release
  instance.release
end

.reset!Object



605
606
607
608
# File 'documented/util/memoryreleaser.rb', line 605

def reset!
  @instance&.stop
  @instance = nil
end

.running?Boolean

Returns:

  • (Boolean)


593
594
595
# File 'documented/util/memoryreleaser.rb', line 593

def running?
  instance.running?
end

.start(interval: nil, verbose: nil) ⇒ Object



565
566
567
# File 'documented/util/memoryreleaser.rb', line 565

def start(interval: nil, verbose: nil)
  instance.start(interval: interval, verbose: verbose)
end

.statusObject



597
598
599
# File 'documented/util/memoryreleaser.rb', line 597

def status
  instance.status
end

.stopObject



569
570
571
# File 'documented/util/memoryreleaser.rb', line 569

def stop
  instance.stop
end

.verbose!(enabled) ⇒ Object



585
586
587
# File 'documented/util/memoryreleaser.rb', line 585

def verbose!(enabled)
  instance.verbose!(enabled)
end