Don’t close file descriptor until after ~PackedFdMessageReader()

The message reader may use the file descriptor in its destructor, which is why we can’t close it until that object has been destroyed.
This commit is contained in:
Allan Odgaard
2013-09-05 23:01:30 +02:00
parent d3a78e59f2
commit 2107223460

View File

@@ -92,7 +92,7 @@ namespace plist
int fd = open(path.c_str(), O_RDONLY|O_CLOEXEC);
if(fd != -1)
{
capnp::PackedFdMessageReader message(fd);
capnp::PackedFdMessageReader message(kj::AutoCloseFd{fd});
for(auto src : message.getRoot<Cache>().getEntries())
{
entry_t entry(src.getPath().cStr());
@@ -150,8 +150,6 @@ namespace plist
if(entry.type() != entry_type_t::unknown)
_cache.emplace(src.getPath().cStr(), entry);
}
close(fd);
}
}