Well, I should have just tried rather than asking questions. 

On Fri, Dec 14, 2018 at 8:33 AM Stephan Menzel <stephan.menzel@gmail.com> wrote:

If I simply add fiber futures to the interface, can I set the value to the fiber promise in that other thread running the io_service, leaving the basic architecture? This would allow me to still use the library with regular threading and in non-fiber scenarios, which I would very much like to. Alternatively, I could just hand in a callback with a fiber promise but this also means that the callback is executed in the thread that runs the client object. Hence my question.

I have just tried and wrote a little quick and dirty testcase. I have the results here, in case anyone is interested:

https://github.com/MrMoose/mredis/blob/master/fiber_testsuite.cpp

The code doesn't have any explicit yields(), which was important for me for some reason and yet does as expected. My taking away from this exercise are:
 
 * Yes it is possible to set the value of a fiber promise in another thread. At least I didn't see problems.
 * When I use the callback mechanism, I can transform the code without having to change the underlying library
 * Fibers are not as complicated as I thought they would be.

Once I realized the interface is very similar to threads and everything that would block (such as wait for the future to become ready) is pretty much equivalent to 'hand over to another fiber' it all fell into place. I do believe there could be a bit less intimidating examples in the docs though. Perhaps something like 'fibers for people already familiar with threads'... Turned out to be much less difficult than I thought.

Anyway, thanks again for your help. I am now equipped to use the fibers in my async server.
 
Cheers,
Stephan