<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <tt>Hi Robert,<br>
      <br>
      The only question I can answer is 1) - OpenSIPS it is a
      multi-process application (and not using threads). <br>
      <br>
      How the python module is design (from threading perspective), I do
      not know - maybe Maxim, the author of this module can help with
      this.<br>
      <br>
      Regards,<br>
    </tt>
    <pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
  OpenSIPS Founder and Developer
  <a class="moz-txt-link-freetext" href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a>

OpenSIPS Summit May 2017 Amsterdam
  <a class="moz-txt-link-freetext" href="http://www.opensips.org/events/Summit-2017Amsterdam.html">http://www.opensips.org/events/Summit-2017Amsterdam.html</a>
</pre>
    <div class="moz-cite-prefix">On 04/19/2017 08:43 PM, Mundkowsky,
      Robert wrote:<br>
    </div>
    <blockquote
cite="mid:BL2PR07MB2385EFF35217330CBF07F9C4BE180@BL2PR07MB2385.namprd07.prod.outlook.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.pl-c1
        {mso-style-name:pl-c1;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:682905234;
        mso-list-type:hybrid;
        mso-list-template-ids:2090362198 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:1235242075;
        mso-list-type:hybrid;
        mso-list-template-ids:-1067162738 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Hi,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">This email should likely go to your other
          dev forum, but I don’t have access yet.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I am using openSIPS 2.2.3 on Ubuntu 16.04.2
          LTS. <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I am using the python module.  The python
          script called works fine when called from outside openSIPS and
          it works fine when called inside openSIPS, if it is triggered
          once at a time.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">But if the python script is triggered twice
          by two phone calls or more or even one call after another in
          short order, then there are weird errors which show up in
          different places in the code like:<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal" style="text-indent:.5in">ERROR:python:python_handle_exception:
          #011TypeError: an integer is required<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I am guessing the openSIP python module has
          some problem/s related to threading.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal" style="text-indent:.5in"><o:p> </o:p></p>
        <p class="MsoNormal">Questions:<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">1)<span style="font:7.0pt
              "Times New Roman"">     
            </span></span><!--[endif]-->I am guessing that OpenSIPS uses
          a multi-threaded architecture?<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">2)<span style="font:7.0pt
              "Times New Roman"">     
            </span></span><!--[endif]-->Is the python module meant to be
          a single thread? Or multi-threaded?<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2
          lfo2">
          <!--[if !supportLists]--><span style="mso-list:Ignore">a.<span
              style="font:7.0pt "Times New Roman"">      
            </span></span><!--[endif]-->If it is meant to be single
          threaded then why use python library thread functions? Just
          use python library without multi-threaded stuff.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2
          lfo2">
          <!--[if !supportLists]--><span class="pl-c1"><span
              style="mso-list:Ignore">b.<span style="font:7.0pt
                "Times New Roman"">     
              </span></span></span><!--[endif]-->If it is meant to be
          multi-threaded then why is there only one call to
          <span class="pl-c1">PyThreadState_New and </span>myThreadState
          is a global used everywhere?<span class="pl-c1"><o:p></o:p></span></p>
        <p class="MsoListParagraph"
style="margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1
          level3 lfo2">
          <!--[if !supportLists]--><span style="mso-list:Ignore"><span
              style="font:7.0pt "Times New Roman"">                                                              
            </span>i.<span style="font:7.0pt "Times New
              Roman"">      </span></span><!--[endif]-->I would
          think a thread per call to python_exec would make more sense
          and make the code easier to understand?<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l1 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">3)<span style="font:7.0pt
              "Times New Roman"">     
            </span></span><!--[endif]-->Also why is there no clean up
          code (PyThreadState_Clear, PyThreadState_Delete, Py_Finalize)?<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="margin-left:1.0in;text-indent:-.25in;mso-list:l1 level2
          lfo2">
          <!--[if !supportLists]--><span style="mso-list:Ignore">a.<span
              style="font:7.0pt "Times New Roman"">      
            </span></span><!--[endif]-->I am guessing the idea is you do
          not need clean up, because it only happens when openSIPS is
          turned off.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Robert<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">For reference:<o:p></o:p></p>
        <p class="MsoNormal" style="text-indent:.5in"><a
            moz-do-not-send="true"
href="https://www.codeproject.com/articles/11805/embedding-python-in-c-c-part-i"><a class="moz-txt-link-freetext" href="https://www.codeproject.com/articles/11805/embedding-python-in-c-c-part-i">https://www.codeproject.com/articles/11805/embedding-python-in-c-c-part-i</a></a><o:p></o:p></p>
        <p class="MsoNormal" style="text-indent:.5in"><a
            moz-do-not-send="true"
            href="http://www.awasu.com/weblog/embedding-python/threads/"><a class="moz-txt-link-freetext" href="http://www.awasu.com/weblog/embedding-python/threads/">http://www.awasu.com/weblog/embedding-python/threads/</a></a><o:p></o:p></p>
        <p class="MsoNormal" style="text-indent:.5in"><a
            moz-do-not-send="true"
href="http://stackoverflow.com/questions/26061298/python-multi-thread-multi-interpreter-c-api"><a class="moz-txt-link-freetext" href="http://stackoverflow.com/questions/26061298/python-multi-thread-multi-interpreter-c-api">http://stackoverflow.com/questions/26061298/python-multi-thread-multi-interpreter-c-api</a></a><o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <br>
      <hr>
      <p>This e-mail and any files transmitted with it may contain
        privileged or confidential information. It is solely for use by
        the individual for whom it is intended, even if addressed
        incorrectly. If you received this e-mail in error, please notify
        the sender; do not disclose, copy, distribute, or take any
        action in reliance on the contents of this information; and
        delete it from your system. Any other use of this e-mail is
        prohibited.</p>
      <br>
      <p>Thank you for your compliance.</p>
      <hr>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a>
<a class="moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>