elast0ny / elast0ny/wamp_async

Workaround for lifetime poisoning with client?

Open
#20 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
23
Forks
13
PR merge metrics
No merged PRs in 30d

Description

I am looking into implementing call canceling. My first idea to minimize the impact of the changes was to spawn a task for the client to wait for call results, and return a cancelable future from `Client::call` that would abort the task (if required based on options) and send the WAMP `CANCEL` message using the Client. This doesn't appear to be possible because of the lifetime poisoning that occurs as described in the commit message from #5.

Anyone have another idea how this could be implemented. The main issue is that you need the call `request_id` to cancel the call, but in the current implementation of `Client::call` you wouldn't have the `request_id` until receiving the result.

The only thing I can think is that `Client::call` only returns a struct with the `request_id`, and an implementation which would allow you to get the `results` future, or execute `cancel` from there.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.