I'm not an expert on the GIL / Python C api, but the documentation suggests that every single API call needs to be executed within the context of a held GIL lock: "... only the thread that has acquired the GIL may operate on Python objects or call Python/C API functions."
I've noticed a few places where the GIL isn't being acquired: Java_org_jpy_PyLib_newDict and Java_org_jpy_PyLib_copyDict (a non-exhaustive search). Should these places acquire the GIL?
I'm not an expert on the GIL / Python C api, but the documentation suggests that every single API call needs to be executed within the context of a held GIL lock: "... only the thread that has acquired the GIL may operate on Python objects or call Python/C API functions."
I've noticed a few places where the GIL isn't being acquired:
Java_org_jpy_PyLib_newDict
andJava_org_jpy_PyLib_copyDict
(a non-exhaustive search). Should these places acquire the GIL?