[Lldb-commits] [PATCH] D56231: [lldb-server] Improve support on Windows
Zachary Turner via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon Jan 7 10:14:47 PST 2019
zturner added inline comments.
Comment at: source/Host/common/File.cpp:606-607
long cur = ::lseek(m_descriptor, 0, SEEK_CUR);
error = Write(buf, num_bytes);
Be careful here. `pwrite` on posix is atomic, which means that if multiple threads both use `pwrite` at different offsets, there is no race condition. The only way to do a similar atomic write-at-offset on Windows is with overlapped i/o., and it's a completely different API / interface.
I mention this because in a previous review Pavel suggested to change `lldb-server` to spawn 1 thread / connection instead of 1 process / connection, so this can be a real problem in such a scenario if they are racing for the same file. Probably they won't be, since each connection will use different output files, but we should at least be aware of (and perhaps document) the different in atomicity semantics here.
Alternatively, we could just err on the side of safety and put this in a mutex.
CHANGES SINCE LAST ACTION
More information about the lldb-commits