| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
+ Possible fixing gitpython-developers#31 by stop decrement on destruction, rely only on `with...` resources. + feat(mmap): utility to check if regions have been closed (PY3-only).
+ Add PY3 compat utilities + doc(changes, tutorial): update on mman usage
+ doc(tutorial): update use-cases + doc(changes): new bullet.
+ feat(mman): report missed exits.
+ All gitdb TCs now pass without explit release!
|
Coverage decreased (-0.7%) to 93.116% when pulling 144891b on ankostis:leaks2 into 6e55a1c on gitpython-developers:master. |
Sorry, something went wrong.
|
@Byron can you check these lines where a memoryview is crated? It took me the half month to realize that this is leaking badly, and I want you to check the history of this commits leading up to it, because I cannot understand whether they were mistake or intentional, and what would be the repercussions (ie, performance?). |
Sorry, something went wrong.
|
@ankostis Sorry for the very late reply. I am no holiday now, and am working through everything that piled up. |
Sorry, something went wrong.
|
Yes, it is a python-3 issue, because the destructors are not deterministic. Now, in python3, you can slice memmaps as if they were memoryview, so they are not strictly needed, unless it is a performance issue. From some quick experiments I had done, I could not see any benefits, quite the contrary, but it's been a long time and I don't remember exactly. |
Sorry, something went wrong.
|
If using direct access would be a solution, then it probably should be used instead. Correctness over performance I would say. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
BREAKING API:
retrofit git.util.mman as context-manager,
to release memory-mapped regions held.
The mmap-manager(s) are re-entrant, but not thread-safe context-manager(s),
to be used within a with ...: block, ensuring any left-overs cursors are cleaned up.
If not entered, :meth:StaticWindowMapManager.make_cursor() and/or
:meth:WindowCursor.use_region() will scream.
Get them from smmap.managed_mmaps().
Simplify :class:SlidingWindowMapBuffer as create/close context-manager
(no begin_access(), or end_access()).