Every call sets min_score/n_candidates on the one shared filter object. Thread A sets min_score=0.9, thread B sets 0.5 a millisecond later, thread A's filtering silently runs with B's threshold → wrong results.
We should pass thresholds into the scoring call instead of storing them on the shared object
Every call sets min_score/n_candidates on the one shared filter object. Thread A sets min_score=0.9, thread B sets 0.5 a millisecond later, thread A's filtering silently runs with B's threshold → wrong results.
We should pass thresholds into the scoring call instead of storing them on the shared object