From 22209796627acfef17c53d4cf523eed3daa26c2b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 15 May 2012 01:52:08 +0000 Subject: Eliminate long-duration event locks by generated responses in pre_process(). This also fixes some correctness issues, since the state at pre_process() time is actually the state that needs to be broadcast to clients. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4416 a436a847-0d15-0410-975c-d299462d15a1 --- src/server/events/Get.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/server/events/Get.cpp') diff --git a/src/server/events/Get.cpp b/src/server/events/Get.cpp index 7e140ae4..ac8db196 100644 --- a/src/server/events/Get.cpp +++ b/src/server/events/Get.cpp @@ -77,18 +77,17 @@ Get::post_process() } } else if (!_object && !_plugin) { respond(NOT_FOUND); - } else if (_request_client) { - respond(SUCCESS); - if (_request_client) { - if (_object) { - ObjectSender::send_object(_request_client, _object, true); - } else if (_plugin) { - _request_client->put(_uri, _plugin->properties()); - } - } - } else { + } else if (!_request_client) { respond(CLIENT_NOT_FOUND); } + + respond(SUCCESS); + + if (_object) { + ObjectSender::send_object(_request_client, _object, true); + } else if (_plugin) { + _request_client->put(_uri, _plugin->properties()); + } _lock.release(); } -- cgit v1.2.1