Module: Glslkit::Rails::LiveReload::KnownFiles

Defined in:
lib/glslkit/rails/live_reload/known_files.rb

Overview

プログラム名ごとに「最後に成功したビルドの files」をプロセス内メモリで 保持する。Glslkit::Bundle.build の known_files: に渡すためのもので、 前処理が失敗した回でも意味のある source_digest を計算できるようにする (SPEC-livereload.md §3.2 決定1)。development専用の機能なので永続化は 不要(プロセスを跨いだ保持は求めない)。

development でも Puma は複数スレッドで動くため、単純な Hash への 読み書きではレースの余地がある。Mutex で保護する。

Constant Summary collapse

MUTEX =
Mutex.new

Class Method Summary collapse

Class Method Details

.fetch(name) ⇒ Object



20
21
22
# File 'lib/glslkit/rails/live_reload/known_files.rb', line 20

def fetch(name)
  MUTEX.synchronize { @files_by_name.fetch(name, []) }
end

.remember(name, files) ⇒ Object



24
25
26
# File 'lib/glslkit/rails/live_reload/known_files.rb', line 24

def remember(name, files)
  MUTEX.synchronize { @files_by_name[name] = files }
end