/
uzer_007
/
Rixea
Обзор
Документация
Войти
/
uzer_007
/
Rixea
Код
Запросы
0
Задачи
Вики
Пакеты
5
Релизы
2
CI/CD
Аналитика
Безопасность
master
modules/util/timer.go
36 строк
540 B
uzer_007
feat: первая версия Rixea
02 авг 2026, 22:16
02 авг 2026, 22:16
d4f7504
Код
Авторство
О чём код?
// Copyright 2026 Uzer_007. All rights reserved. // SPDX-License-Identifier: MIT package util import ( "sync" "time" ) func Debounce(d time.Duration) func(f func()) { type debouncer struct { mu sync.Mutex t *time.Timer } db := &debouncer{} return func(f func()) { db.mu.Lock() defer db.mu.Unlock() if db.t != nil { db.t.Stop() } var trigger *time.Timer trigger = time.AfterFunc(d, func() { db.mu.Lock() defer db.mu.Unlock() if trigger == db.t { f() db.t = nil } }) db.t = trigger } }