Limit the lock context when checking sources and builds
This commit is contained in:
parent
8371277873
commit
731bbda848
@ -881,11 +881,10 @@ void PackageConf::sync() {
|
||||
}
|
||||
|
||||
bool PackageConf::can_check_source_upload() {
|
||||
std::lock_guard<std::mutex> lock(*task_mutex_);
|
||||
bool upload_ok = false, source_check_ok = false, source_check_successful = false;
|
||||
std::int64_t upload_time = 0, source_check_time = 0;
|
||||
std::int64_t now = std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||
std::chrono::system_clock::now().time_since_epoch()).count();
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(*task_mutex_);
|
||||
for (const auto &kv : jobstatus_task_map_) {
|
||||
if (kv.first->name == "upload" && kv.second && kv.second->finish_time > 0 && kv.second->successful) {
|
||||
upload_ok = true;
|
||||
@ -896,6 +895,10 @@ bool PackageConf::can_check_source_upload() {
|
||||
source_check_time = kv.second->finish_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
std::int64_t now = std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||
std::chrono::system_clock::now().time_since_epoch()).count();
|
||||
|
||||
if (upload_ok && !source_check_ok) return true;
|
||||
else if (!upload_ok && source_check_ok) return false;
|
||||
else if (upload_ok && source_check_ok && !source_check_successful && (source_check_time >= (now - (60 * 60 * 1000)))) return true;
|
||||
@ -903,11 +906,10 @@ bool PackageConf::can_check_source_upload() {
|
||||
}
|
||||
|
||||
bool PackageConf::can_check_builds() {
|
||||
std::lock_guard<std::mutex> lock(*task_mutex_);
|
||||
bool source_check_ok = false, build_check_ok = false, build_check_successful;
|
||||
std::int64_t source_check_time = 0, build_check_time = 0;
|
||||
std::int64_t now = std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||
std::chrono::system_clock::now().time_since_epoch()).count();
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(*task_mutex_);
|
||||
for (const auto &kv : jobstatus_task_map_) {
|
||||
if (kv.first->name == "source_check" && kv.second && kv.second->finish_time > 0 && kv.second->successful) {
|
||||
source_check_ok = true;
|
||||
@ -918,6 +920,10 @@ bool PackageConf::can_check_builds() {
|
||||
build_check_time = kv.second->finish_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
std::int64_t now = std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||
std::chrono::system_clock::now().time_since_epoch()).count();
|
||||
|
||||
if (!build_check_ok && source_check_ok) return true;
|
||||
else if (!build_check_ok && !source_check_ok) return false;
|
||||
else if (source_check_ok && build_check_ok && !build_check_successful && (build_check_time >= (now - (4 * 24 * 60 * 60 * 1000)))) return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user