import numba
from numba import prange
from numba.typed import Dict, List
@numba.njit(parallel=True)
def create_list_of_dicts(input: List[int]):
output = List()
for i in prange(len(input)):
output.append((Dict([(1, 2)]), input[i]))
return output
len(create_list_of_dicts([i for i in range(1000)]))
trava meu interpretador Python com
double free or corruption (!prev)
Aborted (core dumped)
Presumo que seja porque List.append
não é seguro para threads. Existe uma solução alternativa?
Pré-preenchendo a lista com
output = [None] * len(input)
e, em seguida, atribuindo a entradas via
output[i] = ...
dá
No implementation of function Function(<built-in function setitem>) found for signature:
>>> setitem(list(none)<iv=None>, int64, Tuple(DictType[int64,int64]<iv=None>, int64))