Commit e177e16e authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 13c24a35
......@@ -1164,8 +1164,8 @@ func (f *BigFile) readBlk(ctx context.Context, blk int64, dest []byte) (err erro
}
// we have the data - it can be used after watchers are updated
// XXX should we use ctx here? (see updateWatchers comments)
f.updateWatchers(ctx, blk, treepath, zblk, blkrevMax)
// XXX should we use ctx here? (see pinWatchers comments)
f.pinWatchers(ctx, blk, treepath, zblk, blkrevMax)
// data can be used now
close(loading.ready)
......@@ -1323,8 +1323,8 @@ func (w *Watch) _pin(ctx context.Context, blk int64, rev zodb.Tid) (err error) {
return nil
}
// updateWatchers complements readBlk: it updates watchers of the file after a
// block was loaded from ZODB and before block data is returned to kernel.
// pinWatchers complements readBlk: it sends `pin blk` for watchers of the file
// after a block was loaded from ZODB and before block data is returned to kernel.
//
// See "7.2) for all registered client@at watchers ..."
//
......@@ -1333,14 +1333,13 @@ func (w *Watch) _pin(ctx context.Context, blk int64, rev zodb.Tid) (err error) {
// XXX do we really need to use/propagate caller context here? ideally update
// watchers should be synchronous, and in practice we just use 30s timeout.
// Should a READ interrupt cause watch update failure?
// XXX -> pinWatchers? pinOnRead?
func (f *BigFile) updateWatchers(ctx context.Context, blk int64, treepath []btree.LONode, zblk zBlk, blkrevMax zodb.Tid) {
func (f *BigFile) pinWatchers(ctx context.Context, blk int64, treepath []btree.LONode, zblk zBlk, blkrevMax zodb.Tid) {
// only head/ is being watched for
if f.head.rev != 0 {
return
}
fmt.Printf("S: read #%d -> update watchers (#%d)\n", blk, len(f.watchTab))
fmt.Printf("S: read #%d -> pin watchers (#%d)\n", blk, len(f.watchTab))
// update δFtail index
bfdir := f.head.bfdir
......@@ -1363,7 +1362,7 @@ func (f *BigFile) updateWatchers(ctx context.Context, blk int64, treepath []btre
for w := range f.watchTab {
w := w
fmt.Printf("S: read -> update watchers: w @%s\n", w.at)
fmt.Printf("S: read -> pin watchers: w @%s\n", w.at)
// XXX locking (w)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment