@ -308,7 +308,8 @@ function BookInfoManager:extractBookInfo(filepath, cover_specs)
-- cre.initCache("", 1024*1024*32) -- empty path = no cache
-- cre.initCache("", 1024*1024*32) -- empty path = no cache
-- But it's best to use a cache for quicker and less memory
-- But it's best to use a cache for quicker and less memory
-- usage when opening big books:
-- usage when opening big books:
cre.initCache ( self.tmpcr3cache , 0 ) -- 0 = previous book caches are removed when opening a book
cre.initCache ( self.tmpcr3cache , 0 , -- 0 = previous book caches are removed when opening a book
true , G_reader_settings : readSetting ( " cre_storage_size_factor " ) ) -- avoid CRE WARNINGs
self.cre_cache_overriden = true
self.cre_cache_overriden = true
end
end
@ -440,6 +441,8 @@ function BookInfoManager:extractBookInfo(filepath, cover_specs)
end
end
end
end
DocumentRegistry : closeDocument ( filepath )
DocumentRegistry : closeDocument ( filepath )
else
loaded = false
end
end
if not loaded then
if not loaded then
dbrow.unsupported = _ ( " not readable by engine " )
dbrow.unsupported = _ ( " not readable by engine " )
@ -513,7 +516,7 @@ function BookInfoManager:collectSubprocesses()
local i = 1
local i = 1
while i <= # self.subprocesses_pids do -- clean in-place
while i <= # self.subprocesses_pids do -- clean in-place
local pid = self.subprocesses_pids [ i ]
local pid = self.subprocesses_pids [ i ]
if x util.isSubProcessDone( pid ) then
if util.isSubProcessDone( pid ) then
table.remove ( self.subprocesses_pids , i )
table.remove ( self.subprocesses_pids , i )
else
else
i = i + 1
i = i + 1
@ -551,7 +554,7 @@ end
function BookInfoManager : terminateBackgroundJobs ( )
function BookInfoManager : terminateBackgroundJobs ( )
logger.dbg ( " terminating " , # self.subprocesses_pids , " subprocesses " )
logger.dbg ( " terminating " , # self.subprocesses_pids , " subprocesses " )
for i = 1 , # self.subprocesses_pids do
for i = 1 , # self.subprocesses_pids do
x util.terminateSubProcess( self.subprocesses_pids [ i ] )
util.terminateSubProcess( self.subprocesses_pids [ i ] )
end
end
end
end
@ -587,7 +590,7 @@ function BookInfoManager:extractInBackground(files)
self.cleanup_needed = true -- so we will remove temporary cache directory created by subprocess
self.cleanup_needed = true -- so we will remove temporary cache directory created by subprocess
-- Run task in sub-process, and remember its pid
-- Run task in sub-process, and remember its pid
local task_pid = x util.runInSubProcess( task )
local task_pid = util.runInSubProcess( task )
if not task_pid then
if not task_pid then
logger.warn ( " Failed lauching background extraction sub-process (fork failed) " )
logger.warn ( " Failed lauching background extraction sub-process (fork failed) " )
return false -- let caller know it failed
return false -- let caller know it failed