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