diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-10-26 21:33:37 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-10-26 22:12:51 +0200 |
commit | 4ca63b0e66a46b076ab98f84efda05daf143cacf (patch) | |
tree | 9cab56a947add4dcbd37d1ea0bcb82c283c0d7bb | |
parent | 800383146af49b4adfd6ecb6d32c6eef4cb27763 (diff) | |
download | rebel-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.
-rw-r--r-- | crates/runner/src/lib.rs | 14 |
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"); |