Remove counter, yield everytime

This commit is contained in:
Leeingnyo
2021-09-18 10:59:43 +09:00
parent 9769e760a0
commit b56e16e1e1
5 changed files with 6 additions and 25 deletions
-2
View File
@@ -133,9 +133,7 @@ class Library
storage = Storage.new auto_close: false
count = Config.current.forcely_yield_count
examine_context : ExamineContext = {
file_counter: (YieldCounter.new count),
cached_contents_signature: {} of String => String,
deleted_title_ids: [] of String,
deleted_entry_ids: [] of String,
+2 -2
View File
@@ -73,7 +73,7 @@ class Title
def examine(context : ExamineContext) : Bool
return false unless Dir.exists? @dir # No title, Remove this
contents_signature = Dir.contents_signature @dir,
context["cached_contents_signature"], context["file_counter"]
context["cached_contents_signature"]
# Not changed. Reuse this
return true if @contents_signature == contents_signature
@@ -112,7 +112,7 @@ class Title
previous_entries_size = @entries.size
@entries.select! do |entry|
existence = File.exists? entry.zip_path
context["file_counter"].count_and_yield
Fiber.yield
context["deleted_entry_ids"] << entry.id unless existence
existence
end
-14
View File
@@ -134,21 +134,7 @@ class TitleInfo
end
end
class YieldCounter
@file_count : UInt32
def initialize(@threshold : Int32)
@file_count = 0
end
def count_and_yield
@file_count += 1
Fiber.yield if @threshold > 0 && @file_count % @threshold == 0
end
end
alias ExamineContext = NamedTuple(
file_counter: YieldCounter,
cached_contents_signature: Hash(String, String),
deleted_title_ids: Array(String),
deleted_entry_ids: Array(String))