diff --git a/pyopencl/invoker.py b/pyopencl/invoker.py index 34566c6d81f94ac48c1abcf92f2e2fcbc11df23a..8cad3f258c0036f24fd5f95e34b3b512d4f61542 100644 --- a/pyopencl/invoker.py +++ b/pyopencl/invoker.py @@ -29,7 +29,7 @@ import numpy as np from warnings import warn from pyopencl._cffi import ffi as _ffi -from pytools.persistent_dict import WriteOncePersistentDict, ReadOnlyEntryError +from pytools.persistent_dict import WriteOncePersistentDict from pyopencl.tools import _NumpyTypesKeyBuilder _PYPY = '__pypy__' in sys.builtin_module_names @@ -382,10 +382,7 @@ def generate_enqueue_and_set_args(function_name, if not from_cache: result = _generate_enqueue_and_set_args_module(*cache_key) - try: - invoker_cache[cache_key] = result - except ReadOnlyEntryError: - pass + invoker_cache.store_if_not_present(cache_key, result) pmod, enqueue_name = result diff --git a/pyopencl/scan.py b/pyopencl/scan.py index 1fa25db165675b00213fb10f0423fb37b480d499..f7be56839d497f5ff7c294d477f0bb9eacd8bb38 100644 --- a/pyopencl/scan.py +++ b/pyopencl/scan.py @@ -40,7 +40,7 @@ from pyopencl.tools import (dtype_to_ctype, bitlog2, import pyopencl._mymako as mako from pyopencl._cluda import CLUDA_PREAMBLE -from pytools.persistent_dict import WriteOncePersistentDict, ReadOnlyEntryError +from pytools.persistent_dict import WriteOncePersistentDict import logging @@ -1187,10 +1187,7 @@ class GenericScanKernel(_GenericScanKernelBase): self.second_level_scan_gen_info, self.final_update_gen_info) - try: - generic_scan_kernel_cache[cache_key] = result - except ReadOnlyEntryError: - pass + generic_scan_kernel_cache.stored_if_not_present(cache_key, result) # Build the kernels. self.first_level_scan_info = self.first_level_scan_gen_info.build( diff --git a/setup.py b/setup.py index 5705e945700822ee7ff772d73288dcb8d2dc81a2..cc286e1f3ab6f548720a68268e846ef7ffede1db 100644 --- a/setup.py +++ b/setup.py @@ -225,7 +225,7 @@ def main(): install_requires=[ "numpy", - "pytools>=2017.5", + "pytools>=2017.6", "pytest>=2", "decorator>=3.2.0", "cffi>=1.1.0",