diff --git a/micro/microfunctions.go b/micro/microfunctions.go index 2e7635ef..238666fc 100644 --- a/micro/microfunctions.go +++ b/micro/microfunctions.go @@ -108,6 +108,20 @@ func Pause_ctx(ctx context.Context, ms int) { } } +// Pause_duration - приостановка работы программы на время duration +func Pause_duration(duration time.Duration) { + time.Sleep(duration) +} + +// Pause_duration_ctx - приостановка работы программы на время duration, с учётом глобального контекста +func Pause_duration_ctx(ctx context.Context, duration time.Duration) { + + select { + case <-ctx.Done(): + case <-time.After(duration): + } +} + // FindDirUp - возвращает строку с именем каталога на уровень выше func FindDirUp(dir string) string { otvet := dir diff --git a/micro/microfunctions_test.go b/micro/microfunctions_test.go index af6040e4..7f0cce8b 100644 --- a/micro/microfunctions_test.go +++ b/micro/microfunctions_test.go @@ -1390,3 +1390,11 @@ func TestIsTrueString(t *testing.T) { t.Errorf("Expected true, but got %v", Otvet) } } + +func TestPause_duration(t *testing.T) { + Pause_duration(time.Millisecond) +} + +func TestPause_duration_ctx(t *testing.T) { + Pause_duration_ctx(context.Background(), time.Millisecond) +}