`unpredictableFunc()` funksiyasını bükmək lazımdır ki, o, vaxt limiti ilə (məsələn, 1 saniyə) işləsin və icra vaxtını qeyd etsin.
// Sonsuz işləyən və ədəd qaytaran funksiya var.
// Onun gövdəsini dəyişdirmək olmaz (daxildə şəbəkə sorğusu olduğunu fərz edək).
func unpredictableFunc() int64 {
rnd := rand.Int63n(5000)
time.Sleep(time.Duration(rnd) * time.Millisecond)
return rnd
}
// Bu funksiyanı əhatə edən funksiyanı dəyişdirmək lazımdır, o, müəyyən edilmiş vaxt limiti ilə işləyəcək (məsələn, 1 saniyə).
// Əgər "uzun" funksiya bu vaxt ərzində işləyibsə, çox yaxşı, nəticəni qaytarırıq.
// Əks halda, səhv qaytarırıq. Bu halda işləmə nəticəsi bizim üçün vacib deyil.
//
// Əlavə olaraq, bu funksiyanın nə qədər işlədiyini ölçmək lazımdır (sadəcə logda göstərin).
// Əhatə edən funksiyanın imzasını dəyişmək olar.
func predictableFunc() int64 {
return unpredictableFunc()
}