mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-16 01:02:34 +00:00
Added some net locks to prevent fetching news while a fetch is already in progress
This commit is contained in:
26
lib/cache.rb
26
lib/cache.rb
@@ -123,5 +123,31 @@ class W3DHub
|
||||
ensure
|
||||
file&.close
|
||||
end
|
||||
|
||||
def self.acquire_net_lock(key)
|
||||
Store["net_locks"] ||= {}
|
||||
|
||||
if Store["net_locks"][key]
|
||||
false
|
||||
else
|
||||
Store["net_locks"][key] = true
|
||||
end
|
||||
end
|
||||
|
||||
def self.release_net_lock(key)
|
||||
Store["net_locks"] ||= {}
|
||||
|
||||
if Store["net_locks"][key]
|
||||
Store["net_locks"].delete(key)
|
||||
else
|
||||
warn "!!! net_lock not found for #{key.inspect}"
|
||||
end
|
||||
end
|
||||
|
||||
def self.net_lock?(key)
|
||||
Store["net_locks"] ||= {}
|
||||
|
||||
Store["net_locks"][key]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user