@@ -2243,7 +2243,8 @@ void DatabaseInterface::request_shutdown()
2243
2243
shutdown_requested.store (true , std::memory_order_relaxed);
2244
2244
}
2245
2245
2246
- bool merge_concurrent_databases_last_use (const char *append_archive, const char * const *source_paths, size_t num_source_paths)
2246
+ bool merge_concurrent_databases_last_use (const char *append_archive, const char * const *source_paths, size_t num_source_paths,
2247
+ bool skip_missing_inputs)
2247
2248
{
2248
2249
std::unordered_map<Hash, uint64_t > timestamps[RESOURCE_COUNT];
2249
2250
@@ -2256,7 +2257,13 @@ bool merge_concurrent_databases_last_use(const char *append_archive, const char
2256
2257
if (source == 0 )
2257
2258
continue ;
2258
2259
else
2259
- return false ;
2260
+ {
2261
+ if (!skip_missing_inputs)
2262
+ return false ;
2263
+
2264
+ LOGW (" Archive %s could not be prepared, skipping.\n " , path);
2265
+ continue ;
2266
+ }
2260
2267
}
2261
2268
2262
2269
for (unsigned i = 0 ; i < RESOURCE_COUNT; i++)
@@ -2301,7 +2308,8 @@ bool merge_concurrent_databases_last_use(const char *append_archive, const char
2301
2308
return true ;
2302
2309
}
2303
2310
2304
- bool merge_concurrent_databases (const char *append_archive, const char * const *source_paths, size_t num_source_paths)
2311
+ bool merge_concurrent_databases (const char *append_archive, const char * const *source_paths, size_t num_source_paths,
2312
+ bool skip_missing_inputs)
2305
2313
{
2306
2314
auto append_db = std::unique_ptr<DatabaseInterface>(create_stream_archive_database (append_archive, DatabaseMode::Append));
2307
2315
if (!append_db->prepare ())
@@ -2312,7 +2320,13 @@ bool merge_concurrent_databases(const char *append_archive, const char * const *
2312
2320
const char *path = source_paths[source];
2313
2321
auto source_db = std::unique_ptr<DatabaseInterface>(create_stream_archive_database (path, DatabaseMode::ReadOnly));
2314
2322
if (!source_db->prepare ())
2315
- return false ;
2323
+ {
2324
+ if (!skip_missing_inputs)
2325
+ return false ;
2326
+
2327
+ LOGW (" Archive %s could not be prepared, skipping.\n " , path);
2328
+ continue ;
2329
+ }
2316
2330
2317
2331
for (unsigned i = 0 ; i < RESOURCE_COUNT; i++)
2318
2332
{
0 commit comments