DebouncedSaver

class DebouncedSaver(scheduler: AsyncScheduler, delaySeconds: Long = 5)(source)

Coalesces a burst of save requests into one asynchronous write.

The first request after an idle period schedules the write delaySeconds later; requests arriving before it fires are absorbed by it, so a player toggling a setting repeatedly costs one file write rather than one per toggle.

A request arriving while a write is pending is dropped rather than queued, so one saver serves exactly one file - sharing it would silently lose the other file's save. FileStore owns one each so that rule cannot be broken by wiring.

Constructors

Link copied to clipboard
constructor(scheduler: AsyncScheduler, delaySeconds: Long = 5)

Functions

Link copied to clipboard
fun request(save: () -> Unit)

Schedules save to run asynchronously, unless a write is already pending.