Commit aa7b03bd authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent e9932145
...@@ -385,10 +385,12 @@ error _Conn::__pin1(PinReq *req) { ...@@ -385,10 +385,12 @@ error _Conn::__pin1(PinReq *req) {
wconn._atMu.RUnlock(); wconn._atMu.RUnlock();
}); });
// XXX deadlock wrt Conn.resync which locks wconn.filehMu and does "watch" ? // NOTE no deadlock wrt Conn.resync, Conn.open, FileH.close - they all send
// "watch" outside of wconn.filehMu.
wconn._filehMu.RLock(); wconn._filehMu.RLock();
// XXX +incref f, so that simultaneous close does not remove f from wconn.filehTab ? // XXX +incref f, so that simultaneous close does not remove f from wconn.filehTab ?
// XXX or just make FileH.close lock f too to synchronize with pinner? // XXX or just make FileH.close lock f too to synchronize with pinner?
// XXX or just keep wconn._filehMu.R during whole __pin1()
tie(f, ok) = wconn._filehTab.get_(req->foid); tie(f, ok) = wconn._filehTab.get_(req->foid);
if (!ok) { if (!ok) {
wconn._filehMu.RUnlock(); wconn._filehMu.RUnlock();
......
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