aboutsummaryrefslogtreecommitdiff
path: root/butl/process.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'butl/process.ixx')
-rw-r--r--butl/process.ixx30
1 files changed, 30 insertions, 0 deletions
diff --git a/butl/process.ixx b/butl/process.ixx
index a049764..baf55f8 100644
--- a/butl/process.ixx
+++ b/butl/process.ixx
@@ -5,6 +5,16 @@
namespace butl
{
inline process::
+ process ()
+ : id (0),
+ status (0), // This is a bit of an assumption.
+ out_fd (-1),
+ in_ofd (-1),
+ in_efd (-1)
+ {
+ }
+
+ inline process::
process (char const* const args[], int in, int out, int err)
: process (nullptr, args, in, out, err) {}
@@ -22,4 +32,24 @@ namespace butl
{
p.id = 0;
}
+
+ inline process& process::
+ operator= (process&& p)
+ {
+ if (this != &p)
+ {
+ if (id != 0)
+ wait ();
+
+ id = p.id;
+ status = p.status;
+ out_fd = p.out_fd;
+ in_ofd = p.in_ofd;
+ in_efd = p.in_efd;
+
+ p.id = 0;
+ }
+
+ return *this;
+ }
}