from numba import jit, objmode
from numba.core.runtime import rtsys
@jit
def dump_nrt(tag):
with objmode():
print(f"tag: {tag}")
print(f"nrt: {rtsys.get_allocation_stats()}")
@jit
def foo():
dump_nrt("before")
x = 1
dump_nrt("after")
return x
print(foo())
When run this, I got
File "open-numba/numba/core/lowering.py", line 1196, in lower_expr
res = self.lower_call(resty, expr)
File "open-numba/numba/core/lowering.py", line 909, in lower_call
res = self._lower_call_ObjModeDispatcher(fnty, expr, signature)
File "open-numba/numba/core/lowering.py", line 961, in _lower_call_ObjModeDispatcher
callee = ObjModeUtils(self.pyapi).load_dispatcher(fnty, argtypes)
File "open-numba/numba/core/pythonapi.py", line 1679, in load_dispatcher
if serialize.is_serialiable(fnty.dispatcher):
File "open-numba/numba/core/serialize.py", line 169, in is_serialiable
pickler.dump(obj)
File "open-numba/numba/cloudpickle/cloudpickle.py", line 1262, in dump
return super().dump(obj)
TypeError: cannot pickle '_thread.RLock' object
not sure how to correct this error. Any thought? Thanks!