# HG changeset patch # User Chris Cannam # Date 1641391339 0 # Node ID ae7397deffaa153f2871480e6a5b81f986d263d1 # Parent 16842bf06026404bbc4447d5fafc7f04dfeac311 Improve error handling (i.e. add some) for failure to initialise diff -r 16842bf06026 -r ae7397deffaa vamp-server/simple-server.cpp --- a/vamp-server/simple-server.cpp Wed Jan 13 15:36:24 2021 +0000 +++ b/vamp-server/simple-server.cpp Wed Jan 05 14:02:19 2022 +0000 @@ -461,16 +461,19 @@ case RRType::Load: response.loadResponse = LoaderRequests().loadPlugin(request.loadRequest); - if (response.loadResponse.plugin != nullptr) { - mapper.addPlugin(response.loadResponse.plugin); - if (debug) { - cerr << "piper-vamp-server " << pid - << ": loaded plugin, handle = " - << mapper.pluginToHandle(response.loadResponse.plugin) - << endl; - } - response.success = true; + + if (!response.loadResponse.plugin) { + throw runtime_error("unable to load plugin"); } + + mapper.addPlugin(response.loadResponse.plugin); + if (debug) { + cerr << "piper-vamp-server " << pid + << ": loaded plugin, handle = " + << mapper.pluginToHandle(response.loadResponse.plugin) + << endl; + } + response.success = true; break; case RRType::Configure: @@ -491,14 +494,16 @@ } response.configurationResponse = LoaderRequests().configurePlugin(creq); + + if (response.configurationResponse.outputs.empty()) { + throw runtime_error("plugin failed to initialise"); + } - if (!response.configurationResponse.outputs.empty()) { - mapper.markConfigured - (h, - creq.configuration.channelCount, - response.configurationResponse.framing.blockSize); - response.success = true; - } + mapper.markConfigured + (h, + creq.configuration.channelCount, + response.configurationResponse.framing.blockSize); + response.success = true; break; }