Hello,
is it about a global variable defined inside the perl script or you mean kamailio.cfg variables? The terminology you used might be clear for Perl guys, but as I am not one, I want to clarify it...
As generic remarks -- kamailio is multi-process application, so each child is a process, not a thread. Each process has its own private memory space, so a global kamailio.cfg variable such as $var(x) is defined in each process and each process has access to the one specific to it. There are shared memory variables, like $shv(z) that all processes can access and change, requiring synchronization to avoid races.
Cheers, Daniel
On 13/10/16 19:13, Alex Balashov wrote:
Hi,
Given the presence of a global (e.g. "our") package variable in an embedded Perl script used through app_perl, is there any implicit thread safety?
That is to say, can a Perl function invoked by one SIP worker reset the value of a global while another instance of the function invoked by a different SIP worker is accessing it?
And if so, is it safe to use generic perlthr locking to avoid this?
Thanks!
-- Alex