mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 11:24:35 -05:00
Use mathematical modulo implementation for calculations (#616)
See documentation (%/rem, mod) for differences. Example for "issue" that occurred: mathematical: -4 % 6 = 2 (expected) kotlin: -4 % 6 = -4 (unexpected)
This commit is contained in:
@@ -75,7 +75,7 @@ class Updater : IUpdater {
|
|||||||
|
|
||||||
val updateInterval = serverConfig.globalUpdateInterval.hours.coerceAtLeast(6.hours).inWholeMilliseconds
|
val updateInterval = serverConfig.globalUpdateInterval.hours.coerceAtLeast(6.hours).inWholeMilliseconds
|
||||||
val lastAutomatedUpdate = preferences.getLong(lastAutomatedUpdateKey, 0)
|
val lastAutomatedUpdate = preferences.getLong(lastAutomatedUpdateKey, 0)
|
||||||
val timeToNextExecution = updateInterval - (System.currentTimeMillis() - lastAutomatedUpdate) % updateInterval
|
val timeToNextExecution = (updateInterval - (System.currentTimeMillis() - lastAutomatedUpdate)).mod(updateInterval)
|
||||||
|
|
||||||
val wasPreviousUpdateTriggered = System.currentTimeMillis() - (if (lastAutomatedUpdate > 0) lastAutomatedUpdate else System.currentTimeMillis()) < updateInterval
|
val wasPreviousUpdateTriggered = System.currentTimeMillis() - (if (lastAutomatedUpdate > 0) lastAutomatedUpdate else System.currentTimeMillis()) < updateInterval
|
||||||
if (!wasPreviousUpdateTriggered) {
|
if (!wasPreviousUpdateTriggered) {
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class HATask(id: String, val interval: Long, execute: () -> Unit, val timerTask:
|
|||||||
|
|
||||||
private fun getElapsedTimeOfCurrentInterval(): Long {
|
private fun getElapsedTimeOfCurrentInterval(): Long {
|
||||||
val timeSinceFirstExecution = System.currentTimeMillis() - firstExecutionTime
|
val timeSinceFirstExecution = System.currentTimeMillis() - firstExecutionTime
|
||||||
return timeSinceFirstExecution % interval
|
return timeSinceFirstExecution.mod(interval)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getLastExecutionTime(): Long {
|
override fun getLastExecutionTime(): Long {
|
||||||
|
|||||||
Reference in New Issue
Block a user