X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fplugin%2FFredPluginConnector.kt;h=98849c4e0a691ed67ccfe5a4e920288458279aad;hb=HEAD;hp=9852e6140d79d9b58fc254ff6204ee0035632c65;hpb=0981ff31f342a3013b03ad73e6778c7d5bf8d23c;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/FredPluginConnector.kt b/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/FredPluginConnector.kt index 9852e61..98849c4 100644 --- a/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/FredPluginConnector.kt +++ b/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/FredPluginConnector.kt @@ -16,7 +16,7 @@ import javax.inject.* */ class FredPluginConnector @Inject constructor(private val pluginRespiratorFacade: PluginRespiratorFacade) : PluginConnector { - override fun sendRequest(pluginName: String, fields: SimpleFieldSet, data: Bucket?): PluginReply { + override suspend fun sendRequest(pluginName: String, fields: SimpleFieldSet, data: Bucket?): PluginReply { val receivedReply = Channel() val responseReceiver = FredPluginTalker { _, _, responseFields, responseData -> GlobalScope.launch { @@ -26,11 +26,9 @@ class FredPluginConnector @Inject constructor(private val pluginRespiratorFacade try { val pluginTalker = pluginRespiratorFacade.getPluginTalker(responseReceiver, pluginName, "") pluginTalker.send(fields, data) - return runBlocking { - receivedReply.receive() - } + return receivedReply.receive() } catch (e: PluginNotFoundException) { - throw PluginException(e) + throw PluginException(cause = e) } }