Commit 24dc5d96 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent f077ed67
...@@ -255,15 +255,15 @@ error _Conn::__pin1(PinReq *req) { ...@@ -255,15 +255,15 @@ error _Conn::__pin1(PinReq *req) {
FileH f; FileH f;
bool ok; bool ok;
wconn._atMu.RLock(); // XXX deadlock wrt Conn.open, Conn.resync ? wconn._atMu.RLock(); // XXX deadlock wrt Conn.resync ?
defer([&]() { defer([&]() {
wconn._atMu.RUnlock(); wconn._atMu.RUnlock();
}); });
// XXX deadlock wrt Conn.open which locks wconn.filehmu and starts initial "watch" // XXX deadlock wrt Conn.resync which locks wconn.mu and does "watch" ?
wconn._mu.lock(); wconn._mu.lock();
// 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 synchronizw with pinner? // XXX or just make FileH.close lock f too to synchronize with pinner?
tie(f, ok) = wconn._filehTab.get_(req->foid); tie(f, ok) = wconn._filehTab.get_(req->foid);
if (!ok) { if (!ok) {
wconn._mu.unlock(); wconn._mu.unlock();
......
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