From 4ca63b0e66a46b076ab98f84efda05daf143cacf Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 26 Oct 2021 21:33:37 +0200 Subject: runner: move more code into the actual task process Leave only the jobserver token handling in the task spawner process. --- crates/runner/src/lib.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'crates') 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"); -- cgit v1.2.3