aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-10-13 21:29:39 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2020-11-05 18:23:39 +0300
commit8ca3b4e5996e37411d866fb5fa1b1a86515aa628 (patch)
tree4a272d34d0aa8c673c9d0eea9987add7765aabf0
parented63f730882bf6061e30b41501b37ca53fef8af9 (diff)
Fix 'unresolved external symbol' for process::timed_wait(milliseconds) on Windows
-rw-r--r--libbutl/process.ixx2
-rw-r--r--tests/process/driver.cxx10
2 files changed, 9 insertions, 3 deletions
diff --git a/libbutl/process.ixx b/libbutl/process.ixx
index eba6be5..c32bf2a 100644
--- a/libbutl/process.ixx
+++ b/libbutl/process.ixx
@@ -251,7 +251,7 @@ namespace butl
// specialization.
//
template <>
- optional<bool> process::
+ LIBBUTL_SYMEXPORT optional<bool> process::
timed_wait (const std::chrono::milliseconds&);
template <typename R, typename P>
diff --git a/tests/process/driver.cxx b/tests/process/driver.cxx
index 3be4154..4b5dd16 100644
--- a/tests/process/driver.cxx
+++ b/tests/process/driver.cxx
@@ -7,6 +7,7 @@
#include <ios>
#include <string>
#include <vector>
+#include <chrono>
#include <sstream>
#include <iterator> // istreambuf_iterator, ostream_iterator
#include <algorithm> // copy()
@@ -25,6 +26,7 @@ import butl.utility; // setenv(), getenv()
import butl.process;
import butl.optional;
import butl.fdstream;
+import butl.timestamp;
#else
#include <libbutl/path.mxx>
#include <libbutl/utility.mxx>
@@ -32,6 +34,7 @@ import butl.fdstream;
#include <libbutl/process-io.mxx>
#include <libbutl/optional.mxx>
#include <libbutl/fdstream.mxx>
+#include <libbutl/timestamp.mxx>
#endif
using namespace std;
@@ -164,8 +167,11 @@ exec (const path& p,
ifdstream is (bin_mode (move (pr3.in_ofd)));
o = is.read_binary ();
- r = pr2.wait () && r;
- r = pr3.wait () && r;
+ // While at it, make sure that the process::timed_wait() template
+ // function overloads can be properly instantiated/linked.
+ //
+ r = pr2.timed_wait (duration::max ()) && r;
+ r = pr3.timed_wait (chrono::milliseconds::max ()) && r;
}
else
{