Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf071ffd

Browse files
committed
All tests work, bumped version
1 parent70fae1f commitf071ffd

File tree

5 files changed

+14
-5
lines changed

5 files changed

+14
-5
lines changed

‎doc/source/changes.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Changelog
33
#########
44

55
**********
6-
v0.8.6
6+
v0.9.0
77
**********
88
- Fixed issue with resources never being freed as mmaps were never closed.
99
- Client counting is now done manually, instead of relying on pyton's reference count

‎smmap/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
__author__="Sebastian Thiel"
44
__contact__="byronimo@gmail.com"
55
__homepage__="https://github.com/Byron/smmap"
6-
version_info= (0,8,5)
6+
version_info= (0,9,0)
77
__version__='.'.join(str(i)foriinversion_info)
88

99
# make everything available in root package for convenience

‎smmap/buf.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ def __getslice__(self, i, j):
9393
l-=len(d)
9494
# This is slower than the join ... but what can we do ...
9595
out+=d
96+
del(d)
9697
# END while there are bytes to read
9798
returnout
9899
else:
@@ -103,6 +104,10 @@ def __getslice__(self, i, j):
103104
d=c.buffer()[:l]
104105
ofs+=len(d)
105106
l-=len(d)
107+
# Make sure we don't keep references, as c.use_region() might attempt to free resources, but
108+
# can't unless we use pure bytes
109+
ifhasattr(d,'tobytes'):
110+
d=d.tobytes()
106111
md.append(d)
107112
# END while there are bytes to read
108113
returnbytes().join(md)

‎smmap/mman.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def _destroy(self):
5858
# Free all resources associated with the mapped file
5959
self._manager._fdict.pop(self._rlist.path_or_fd())
6060
# END remove regions list from manager
61-
exceptTypeError:
61+
except(TypeError,KeyError):
6262
# sometimes, during shutdown, getrefcount is None. Its possible
6363
# to re-import it, however, its probably better to just ignore
6464
# this python problem (for now).
@@ -70,11 +70,14 @@ def _destroy(self):
7070
def_copy_from(self,rhs):
7171
"""Copy all data from rhs into this instance, handles usage count"""
7272
self._manager=rhs._manager
73-
self._rlist=rhs._rlist
73+
self._rlist=type(rhs._rlist)(rhs._rlist)
7474
self._region=rhs._region
7575
self._ofs=rhs._ofs
7676
self._size=rhs._size
7777

78+
forregioninself._rlist:
79+
region.increment_client_count()
80+
7881
ifself._regionisnotNone:
7982
self._region.increment_client_count()
8083
# END handle regions

‎smmap/test/test_buf.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
fromtimeimporttime
1313
importsys
1414
importos
15-
importlogging
1615

1716

1817
man_optimal=SlidingWindowMapManager()
@@ -104,6 +103,7 @@ def test_basics(self):
104103
assertlen(d)==ofs_end-ofs_start
105104
assertd==data[ofs_start:ofs_end]
106105
num_bytes+=len(d)
106+
deld
107107
else:
108108
pos=randint(0,fsize)
109109
assertbuf[pos]==data[pos]
@@ -122,6 +122,7 @@ def test_basics(self):
122122
% (man_id,max_num_accesses,mode_str,type(item),num_bytes/mb,elapsed, (num_bytes/mb)/elapsed),
123123
file=sys.stderr)
124124
# END handle access mode
125+
delbuf
125126
# END for each manager
126127
# END for each input
127128
os.close(fd)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp