Use avp, xavp or hash table variables, they store the values in shared memory. Moreover,
avp/xavp are associated with the suspended transaction and available after continue as
they were at suspend time.
Execution jumps to a route block, so whatever you want to have in the same route block
after suspend, move to a dedicated route block. Of course, returning in the execution
stack done before suspend doesn't work.
But this is something that is specific to parallel processing, the reason for share memory
to exist as a concept. Same is also with multi-threading, no share memory because threads
work all with same private memory, but there are variables on the stack as well as thread
context. You can find many libc functions that have the `thread safe` version, so they
require a stack variable or a context.
Even in other programming languages, all async functions require a callback to be
provided, which is executed when async task is completed, and as part of globals (shared
memory), the rest of variables before async exec are not available.
In short, this is what technology does right now (at least in C), if I am mistaken and
someone has solutions, I will be happy to hear and learn.
I am closing this one, if you want to discuss more about this topic, or how to leverage
avp/xavp/htable to pass info from suspend time to continue time, should be done on
sr-users mailing list.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1642#issuecomment-421907460