Blame tests/memoryview/memoryview_acq_count.srctree
|
Packit Service |
99d393 |
PYTHON setup.py build_ext --inplace
|
|
Packit Service |
99d393 |
PYTHON -c "import counting_atomic"
|
|
Packit Service |
99d393 |
PYTHON -c "import counting_locked"
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
######## setup.py ########
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
from distutils.core import setup
|
|
Packit Service |
99d393 |
from Cython.Distutils import build_ext
|
|
Packit Service |
99d393 |
from Cython.Distutils.extension import Extension
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
setup(
|
|
Packit Service |
99d393 |
ext_modules = [
|
|
Packit Service |
99d393 |
Extension("counting_atomic", ["counting_atomic.pyx"]),
|
|
Packit Service |
99d393 |
Extension("counting_locked", ["counting_locked.pyx"],
|
|
Packit Service |
99d393 |
define_macros=[('CYTHON_ATOMICS', '0')])
|
|
Packit Service |
99d393 |
],
|
|
Packit Service |
99d393 |
cmdclass={'build_ext': build_ext},
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
######## counting_atomic.pyx ########
|
|
Packit Service |
99d393 |
include "counting.pxi"
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
######## counting_locked.pyx ########
|
|
Packit Service |
99d393 |
include "counting.pxi"
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
######## counting.pxi ########
|
|
Packit Service |
99d393 |
cimport cython
|
|
Packit Service |
99d393 |
from cython.parallel cimport prange
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef int[100] a
|
|
Packit Service |
99d393 |
cdef int[:] m = a
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef Py_ssize_t i
|
|
Packit Service |
99d393 |
for i in prange(1000000, nogil=True, num_threads=16):
|
|
Packit Service |
99d393 |
use_slice(m[::2])
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef int use_slice(int[:] m) nogil except -1:
|
|
Packit Service |
99d393 |
cdef int[:] m2 = m[1:]
|
|
Packit Service |
99d393 |
m = m2[:-1]
|
|
Packit Service |
99d393 |
del m, m2
|
|
Packit Service |
99d393 |
return 0
|