Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wendelin.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Joshua
wendelin.core
Commits
594e0684
Commit
594e0684
authored
Dec 04, 2019
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
7cbb1b4a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1 addition
and
35 deletions
+1
-35
wcfs/__init__.py
wcfs/__init__.py
+0
-34
wcfs/internal/wcfs_virtmem.cpp
wcfs/internal/wcfs_virtmem.cpp
+1
-1
No files found.
wcfs/__init__.py
View file @
594e0684
...
...
@@ -88,40 +88,6 @@ class WCFS(_WCFS):
pass
"""
# resync resyncs connection and its mappings onto different database view.
@func(Conn)
def resync(wconn, at):
# XXX locking
for foid, f in wconn._filetab.items():
# XXX if file has no mappings and was not used during whole prev
# cycle - forget and stop watching it
# update f.headfsize and remmap to head/f zero regions that are now covered by head/f
_ = os.fstat(f.headf.fileno())
assert f.blksize == _.st_blksize # blksize must not change
headfsize = _.st_size
assert f.headfsize <= headfsize # head/file size ↑=
assert headfsize % f.blksize == 0
for mmap in f.mmaps:
print(' resync -> %s: unzero [%d:%d)' % (at, f.headfsize//f.blksize, headfsize//f.blksize))
memunzero = mmap.mem[f.headfsize - mmap.blk_start*f.blksize :
headfsize - mmap.blk_start*f.blksize]
if len(memunzero) > 0:
mm.map_into_ro(memunzero, f.headf.fileno(), f.headfsize)
f.headfsize = headfsize
_ = wconn._wlink.sendReq(context.background(), b"watch %s @%s" % (h(foid), h(at)))
if _ != "ok":
# XXX unregister f from _filetab
# XXX vvv -> errctx?
raise RuntimeError("resync @%s -> @%s: f<%s>: %s" % (h(wconn.at), h(at), h(foid), _))
wconn.at = at
# _remmapblk remmaps mapping memory for file[blk] to be viewing database as of @at state.
#
# at=None means unpin to head/ .
...
...
wcfs/internal/wcfs_virtmem.cpp
View file @
594e0684
...
...
@@ -362,7 +362,7 @@ error _Conn::resync(zodb::Tid at) {
// update f.headfsize and remmap to head/f zero regions that are now covered by head/f
struct
stat
st
;
auto
err
=
f
.
headf
->
stat
(
&
st
);
error
err
=
f
.
headf
->
stat
(
&
st
);
if
(
err
!=
nil
)
return
err
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment