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
_______________________________________________
Kamailio (SER) - Development Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to