release-the-gil/src/fibonacci_cython.pyx

25 lines
390 B
Cython
Raw Normal View History

2019-11-25 23:06:53 -05:00
cdef unsigned long fibonacci(unsigned long n) nogil:
if n <= 1:
return n
cdef unsigned long a = 0, b = 1, c = 0
c = a + b
for _i in range(2, n):
a = b
b = c
c = a + b
return c
def cython_nogil(unsigned long n):
with nogil:
value = fibonacci(n)
return value
def cython_gil(unsigned long n):
return fibonacci(n)