diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2012-04-23 12:01:15 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2012-04-23 12:01:15 -0400 |
commit | 78816bb1561190ac5a882caa90da2865d4aaa353 (patch) | |
tree | 3ad54978a8339ae3fd4f4d1f8d7f63d8d54f8090 /indra/llinventory/lltransactionflags.cpp | |
parent | eb1bea222322385e6e5b05206f09f21bb891f3f7 (diff) |
IQA-463: Use APR file I/O for downloaded viewer installer .exe.
On Windows, calling CreateProcess(bInheritHandles=FALSE) is the wrong idea. In
that case, CreateProcess() passes NO handles -- even the files you've
explicitly designated as the child's stdin, stdout, stderr in the STARTUPINFO
struct! Remove LLProcess code to tweak bInheritHandles; we should also remove
the corresponding (useless) APR extension.
Instead, given that the Windows file-locking problem we've observed is
specific to the viewer installer .exe file downloaded by the background
updater logic, use APR file I/O for that specific file. Empirically, both
llofstream and std::ofstream seem to make the open file handle inheritable;
but apr_file_open() documentation says: "By default, the returned file
descriptor will not be inherited by child processes created by
apr_proc_create()." And indeed, it does appear to sidestep the locking problem.
Diffstat (limited to 'indra/llinventory/lltransactionflags.cpp')
0 files changed, 0 insertions, 0 deletions