summaryrefslogtreecommitdiff
path: root/docs/examples/userguide/parallelism/breaking_loop.py
blob: 00d0225b52c320f384dd2496c09ce794c67c2e13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from cython.parallel import prange

@cython.exceptval(-1)
@cython.cfunc
def func(n: cython.Py_ssize_t) -> cython.int:
    i: cython.Py_ssize_t

    for i in prange(n, nogil=True):
        if i == 8:
            with cython.gil:
                raise Exception()
        elif i == 4:
            break
        elif i == 2:
            return i