Add test for enum int conversion by filmor · Pull Request #1811 · pythonnet/pythonnet
Comment on lines +83 to +84
| [ForbidPythonThreads] | ||
| #pragma warning disable IDE1006 // Naming Styles - must match Python | ||
| public static PyInt __int__(T value) | ||
| public static PyInt __int__(T value) { |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The [ForbidPythonThreads] attribute should be ensuring that when this method is called, the calling thread holds GIL.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's the other way round, right? If this attribute is not given, the GIL is explicitly released. If for some reason it has been released before, it will not be taken here.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The point is: who and why releases GIL when this is called from Python?
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a great question, but in the end, the code here is wrong as ForbidPythonThreads does not take the GIL, right? After this one is merged, I'd declare the current master rc1 and start off a release-3.0 branch, ok?
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@filmor you should take this fix instead. I actually addressed ignoring ForbidPythonThreads: losttech@025cc5c