Loading BuilderQueue/include/ReservationRequest.h +6 −7 Original line number Diff line number Diff line Loading @@ -7,17 +7,12 @@ // We must remove a reservation from the queue if it is destructed but we don't want // The reservation to have a handle to the queue, else we have a weird circular dependency: reservation<-->queue class ReservationRequest { private: BuilderQueue &queue; Messenger& client; Reservation &reservation; public: explicit ReservationRequest(BuilderQueue &queue, Messenger& client) : queue(queue), client(client), reservation(queue.enter()), error(reservation.error) reservation(queue.enter()) {} ~ReservationRequest() { Loading @@ -25,5 +20,9 @@ public: } BuilderData async_wait(); boost::system::error_code& error; private: BuilderQueue &queue; Messenger& client; Reservation &reservation; }; No newline at end of file BuilderQueue/src/Connection.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ void Connection::checkout_builder(Messenger& client) { logger::write(client.socket, "Requesting builder from the queue"); ReservationRequest reservation(queue, client); BuilderData builder = reservation.async_wait(); if (reservation.error) { if (client.error) { logger::write("reservation builder request failed: " + client.error.message()); return; } Loading BuilderQueue/src/Reservation.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ void Reservation::async_wait(Messenger& client) { ready_timer.async_wait(client.yield[error]); if (error != asio::error::operation_aborted) { logger::write("Error in reservation async_wait" + error.message()); client.error = error; return; } } Loading Loading
BuilderQueue/include/ReservationRequest.h +6 −7 Original line number Diff line number Diff line Loading @@ -7,17 +7,12 @@ // We must remove a reservation from the queue if it is destructed but we don't want // The reservation to have a handle to the queue, else we have a weird circular dependency: reservation<-->queue class ReservationRequest { private: BuilderQueue &queue; Messenger& client; Reservation &reservation; public: explicit ReservationRequest(BuilderQueue &queue, Messenger& client) : queue(queue), client(client), reservation(queue.enter()), error(reservation.error) reservation(queue.enter()) {} ~ReservationRequest() { Loading @@ -25,5 +20,9 @@ public: } BuilderData async_wait(); boost::system::error_code& error; private: BuilderQueue &queue; Messenger& client; Reservation &reservation; }; No newline at end of file
BuilderQueue/src/Connection.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ void Connection::checkout_builder(Messenger& client) { logger::write(client.socket, "Requesting builder from the queue"); ReservationRequest reservation(queue, client); BuilderData builder = reservation.async_wait(); if (reservation.error) { if (client.error) { logger::write("reservation builder request failed: " + client.error.message()); return; } Loading
BuilderQueue/src/Reservation.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ void Reservation::async_wait(Messenger& client) { ready_timer.async_wait(client.yield[error]); if (error != asio::error::operation_aborted) { logger::write("Error in reservation async_wait" + error.message()); client.error = error; return; } } Loading