| Name |
Last commit
|
Last Update |
|---|---|---|
| .github | ||
| pybind11_abseil | ||
| scripts | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
| WORKSPACE | ||
| requirements.txt |
Note: This change is the result of exploring and discarding multiple approaches to fixing the zero-refcount bug in a more general way. The only approach that worked out is this local fix in the callback code. Fundamentally, code involving `StatusOr<PyObject *>` objects is inherently unsafe and bug prone, because ownership of the Python reference is not managed automatically. Ideally use of `StatusOr<PyObject *>` would generate compilation errors (e.g. via `static_assert`), which would be easy to achieve just in the pybind11_abseil repo, but would require significant sprawling changes around the Google codebase. Unfortunately, currently this is infeasible. The command used for manual leak checking (see `# Manual verification` comments in status_testing_no_cpp_eh_test_lib.py) was: ``` blaze run //third_party/pybind11_abseil/tests:status_testing_no_cpp_eh_test ``` The `top` command was used to visually monitor `RES` for about 10 seconds, for each test case. PiperOrigin-RevId: 597061300
| Name |
Last commit
|
Last Update |
|---|---|---|
| .github | Loading commit data... | |
| pybind11_abseil | Loading commit data... | |
| scripts | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .pre-commit-config.yaml | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| LICENSE | Loading commit data... | |
| README.md | Loading commit data... | |
| WORKSPACE | Loading commit data... | |
| requirements.txt | Loading commit data... |