summaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2021-10-26 21:33:37 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2021-10-26 22:12:51 +0200
commit4ca63b0e66a46b076ab98f84efda05daf143cacf (patch)
tree9cab56a947add4dcbd37d1ea0bcb82c283c0d7bb /crates
parent800383146af49b4adfd6ecb6d32c6eef4cb27763 (diff)
downloadrebel-4ca63b0e66a46b076ab98f84efda05daf143cacf.tar
rebel-4ca63b0e66a46b076ab98f84efda05daf143cacf.zip
runner: move more code into the actual task process
Leave only the jobserver token handling in the task spawner process.
Diffstat (limited to 'crates')
-rw-r--r--crates/runner/src/lib.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/runner/src/lib.rs b/crates/runner/src/lib.rs
index ae56981..54efd00 100644
--- a/crates/runner/src/lib.rs
+++ b/crates/runner/src/lib.rs
@@ -51,16 +51,16 @@ fn handle_request(
request_socket: UnixStream,
) -> UnixSeqpacketConn {
let child = |socket| {
- drop(socket);
-
- let task: Task =
- bincode::deserialize_from(&request_socket).expect("Failed to decode task description");
-
- prctl::set_name(&task.label).expect("prctl(PR_SET_NAME)");
-
let token = jobserver.wait();
let pid = unsafe {
clone::spawn(None, (), |()| {
+ drop(socket);
+
+ let task: Task = bincode::deserialize_from(&request_socket)
+ .expect("Failed to decode task description");
+
+ prctl::set_name(&task.label).expect("prctl(PR_SET_NAME)");
+
let result = task::handle(task, jobserver);
bincode::serialize_into(&request_socket, &result)
.expect("Failed to send task result");