# Is it possible to skip to the next loop on time limit?

**URL:** <https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306>\
**Category:** New to Julia\
**Tags:** question, task\
**Created:** [July 16, 2022, 7:00am UTC](https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306 "2022-07-16T07:00:12Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Funkerfish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/funkerfish/32/37982_2.png) [@Funkerfish](https://discourse.julialang.org/u/Funkerfish)\
**Post date:** [July 16, 2022, 7:00am UTC](https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306/1 "2022-07-16T07:00:13Z")

</div>

Thanks to you guys I have learned the method to kill the loop on the time limit.[https://discourse.julialang.org/t/how-would-i-stop-a-while-loop-after-n-amount-of-time/84299/2](https://discourse.julialang.org/t/how-would-i-stop-a-while-loop-after-n-amount-of-time/84299/2) but I am still wondering if there is any method to skip to the next loop on time limit?

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [July 16, 2022, 7:07am UTC](https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306/2 "2022-07-16T07:07:16Z")

</div>

```julia
julia> time_start = time_ns()
       @time while true
           if time_ns() - time_start > 5e9
               break
           end
       end
  4.975468 seconds (23.11 M allocations: 352.

```

Does that work?

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [July 16, 2022, 7:12am UTC](https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306/3 "2022-07-16T07:12:18Z")

</div>

Here is a more elaborate example

```julia
julia> function f()
           time_start = time_ns()
           counter = 0
           while true
               if time_ns() - time_start > 5e9
                   break
               end
               counter += 1
          end
          return counter
       end
f (generic function with 1 method)

julia> @time f()
  5.000008 seconds
13306379

julia> @time f()
  5.000006 seconds
13317871

```

---

<div class="post-metadata">

**Author:** ![Funkerfish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/funkerfish/32/37982_2.png) [@Funkerfish](https://discourse.julialang.org/u/Funkerfish)\
**Post date:** [July 16, 2022, 7:13am UTC](https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306/4 "2022-07-16T07:13:30Z")

</div>

Well…it is still the method to kill the loop.  
My question is, for a `for` loop, is there a way to conduct the `continue` function on some time limit so that it can skip to the next loop.

---

<div class="post-metadata">

**Author:** ![Funkerfish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/funkerfish/32/37982_2.png) [@Funkerfish](https://discourse.julialang.org/u/Funkerfish)\
**Post date:** [July 16, 2022, 7:18am UTC](https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306/5 "2022-07-16T07:18:23Z")

</div>

`time_ns() - time_start` may work! I would try that. thank you!

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [July 16, 2022, 7:34am UTC](https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306/6 "2022-07-16T07:34:49Z")

</div>

```julia
julia> function f()
           f_start = time_ns()
           for i in 1:10
               iteration_start = time_ns()
               println("Loop iteration $i at $((time_ns() - f_start)/1e9)")
               t = @async sleep(i)
               status = timedwait(3) do
                   istaskdone(t)
               end
               println("Iteration $i status: $status")
           end
       end
f (generic function with 1 method)

julia> f()
Loop iteration 1 at 1.928e-6
Iteration 1 status: ok
Loop iteration 2 at 1.054216979
Iteration 2 status: ok
Loop iteration 3 at 3.071932343
Iteration 3 status: ok
Loop iteration 4 at 6.14614505
Iteration 4 status: timed_out
Loop iteration 5 at 9.244185518
Iteration 5 status: timed_out
Loop iteration 6 at 12.322501454
Iteration 6 status: timed_out
Loop iteration 7 at 15.40138489
Iteration 7 status: timed_out
Loop iteration 8 at 18.473001556
Iteration 8 status: timed_out
Loop iteration 9 at 21.479161034
Iteration 9 status: timed_out
Loop iteration 10 at 24.544645199
Iteration 10 status: timed_out

```

---

<div class="post-metadata">

**Author:** ![Funkerfish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/funkerfish/32/37982_2.png) [@Funkerfish](https://discourse.julialang.org/u/Funkerfish)\
**Post date:** [July 16, 2022, 7:55am UTC](https://discourse.julialang.org/t/is-it-possible-to-skip-to-the-next-loop-on-time-limit/84306/7 "2022-07-16T07:55:57Z")

</div>

I realized that if the loop needs to be terminated before a certain time, the function inside the loop is usually still running, which makes my request logically impossible. I will try to find another way to avoid this.  
But still thank you for your code! Have learned much!
