Heh, Thanks Raphael

I'll give it a go but that is clearly the problem. I'll check out trunk and
do a diff to see what the problem was, because it frustrated me yesterday :D

Thanks alot for taking the time to test.

Cheers
Jason

On Wed, Jul 9, 2008 at 10:53 AM, Raphael Coeffic <[EMAIL PROTECTED]> wrote:

>
> Hi Jason,
>
> are you using the latest trunk? I tried your script and got following:
>
> ../..
> (3063) WARNING: loadFile (AmConfigReader.cpp:48): could not open
> configuration file 'etc/tst_thread.conf': No such file or directory
> (3063) WARNING: loadScript (Ivr.cpp:387): could not load config file at
> etc/tst_thread.conf
> (3063) INFO: Ivr-Python: test thread instantiated
> (3063) INFO: Ivr-Python: test thread main code running
> (3063) INFO: onLoad (Ivr.cpp:536): Application script registered:
> tst_thread.
> ../..
>
> I think that somebody had the error as you, which got fixed by updating to
> the latest code base. Maybe that would work for also?
>
> Cheers
> Raphael.
>
>
> Jason Penton wrote:
>
>> Hey Raphael
>>
>> Sure, I even tried the most basic of scripts, like:
>>
>> class TestThread(threading.Thread):
>>      def __init__(self):
>>           threading.Thread.__init__(self)
>>           info("test thread instantiated")
>>      def run(self):
>>           info("test thread main code running")
>>
>> testThread = TestThread()
>> t.start()
>>
>> class IvrDialog(IvrDialogBase):
>>      ...
>>      ...
>>
>> The debug says the following:
>>
>> (4362) INFO: Ivr-Python: test thread instantiated
>> Fatal Python error: PyEval_AcquireThread: non-NULL old thread state
>> Fatal Python error: ceval: tstate mix-up
>> Abort (core dumped)
>>
>>
>>
>>
>>
>> On Wed, Jul 9, 2008 at 9:25 AM, Raphael Coeffic <[EMAIL PROTECTED] <mailto:
>> [EMAIL PROTECTED]>> wrote:
>>
>>    Jason Penton wrote:
>>
>>        Hey Stefan
>>
>>
>>        On Tue, Jul 8, 2008 at 5:09 PM, Stefan Sayer
>>        <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>>        <mailto:[EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>>> wrote:
>>
>>
>>
>>           o Jason Penton [07/08/08 16:38]:
>>
>>               Hi Raphael,
>>
>>               I already tried using the threading modules of python,
>>        but get
>>               awesome core dumps :D
>>
>>           i am not sure i tried this, but it might have to do with the
>>           global interpreter lock.
>>
>>
>>
>>    This is indeed very strange, as i tried that a few weeks ago, and
>>    everything worked like a charm... Could you give an example of a
>>    script generating such a core dump?
>>
>>    -Raphael.
>>
>>
>>               I'm assuming that this is because the interpreter within C
>>               doesnt actually know about this thread and probably why
>>        Stefan
>>               created the createThread method?
>>
>>               Stefan, any ideas?
>>
>>           i was using this code:
>>           server = MonitServer((monit_server, monit_port))
>>
>>
>>           class MonitServer(SimpleXMLRPCServer):
>>                            def _dispatch(self, method, params):
>>                          try:
>>                                  func = getattr(self, 'export_' + method)
>>                          except AttributeError:
>>                                  raise Exception('method "%s" is not
>>           supported' % method)
>>                          else:
>>                                  return func(*params)
>>           ###### exported functions:
>>                  def export_ping(self):
>>                          return [1]
>>
>>                  ...
>>
>>           class run_obj:
>>                  def onRegistrationEvent(self, ev_type, handle, code,
>>        reason):
>>                          debug('onRegistrationEvent: '+ str(ev_type)
>>        + ' ' +
>>           handle + ' '+ str(code) + ' ' + reason)
>>
>>                          server.report_registrationevent(ev_type, handle,
>>           code, reason)
>>
>>                  def run(self):
>>                          debug("run_srv -- svc_monit starting XMLRPC
>>        server
>>           at "+monit_server+":"+ str(monit_port))
>>                          server.serve_forever()
>>
>>           t = run_obj()
>>           ivr.createThread(t)
>>           debug("svc_monit started!")
>>
>>
>>        I have very similar code to this but the run method never
>>        seems to be executed not even the debug statement. Output
>>        looks as follows:
>>
>>
>>        (12633) DEBUG: run (Ivr.cpp:193): PythonScriptThread - calling
>>        python function.
>>        (12633) DEBUG: run (Ivr.cpp:195): PythonScriptThread - thread
>>        finished..
>>
>>        i.e. i am assuming my debug statement should have been printed
>>        between the above 2 calls.
>>
>>        I had a quick look at Ivr.cpp and it seems that the
>>        createThread function accepts a tuple. Is it possible that
>>        there has been a code change since you last used your thread
>>        code. Im stumped at the moment?
>>
>>        Cheers
>>        Jason
>>
>>
>>
>>
>>           to run an xmlrpc server that would report some things about ivr
>>           sessions (which call e.g. the onRegistrationEvent function). no
>>           idea why i had to use the extra run_obj object, but probably
>>           because of the run() function.
>>
>>           Stefan
>>
>>
>>               cheers
>>               Jason
>>
>>
>>               On Tue, Jul 8, 2008 at 4:25 PM, Raphael Coeffic
>>        <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>>               <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>>        <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>>
>>               <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>> wrote:
>>
>>
>>                  Hi Jason,
>>
>>                  i must confess that i have no idea what the createThread
>>               function is
>>                  for (we should ask Stefan, as he added this
>>        function). The only
>>                  thing which i know for sure is that those threads
>>        are only
>>               started
>>                  on start up (onLoad function of the IVR factory...).
>>
>>
>>                  But you can use just plain normal python threads.
>>        For this,
>>               have a
>>                  look at:
>>                  http://docs.python.org/lib/module-threading.html
>>                  http://docs.python.org/lib/module-thread.html
>>
>>                  Cheers
>>                  Raphael.
>>
>>                  Jason Penton wrote:
>>
>>                      Hi *
>>
>>                      can somebody give me a heads up on creating a
>>        thread in
>>               python
>>                      app for SEMS
>>
>>                      I have the following:
>>
>>                      class TestThread:
>>                             def run(self):
>>                                     info("test thread executing")
>>
>>
>>                      #create test thread
>>                      testThread = TestThread()
>>                      createThread(testThread)
>>
>>                      the problem is that the it seems the thread never
>>               executes the
>>                      code???????
>>
>>                      cheers
>>                      Jason
>>
>>
>>
>>
>>  ------------------------------------------------------------------------
>>
>>                      _______________________________________________
>>                      Semsdev mailing list
>>                      [email protected]
>>        <mailto:[email protected]>
>>               <mailto:[email protected]
>>        <mailto:[email protected]>>
>>               <mailto:[email protected]
>>        <mailto:[email protected]>
>>        <mailto:[email protected]
>>        <mailto:[email protected]>>>
>>
>>
>>                      http://lists.iptel.org/mailman/listinfo/semsdev
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>>               _______________________________________________
>>               Semsdev mailing list
>>               [email protected]
>>        <mailto:[email protected]>
>>        <mailto:[email protected] <mailto:[email protected]>>
>>               http://lists.iptel.org/mailman/listinfo/semsdev
>>
>>
>>           --    Stefan Sayer
>>           VoIP Services
>>
>>           [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>>        <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>>           www.iptego.com <http://www.iptego.com> <http://www.iptego.com>
>>
>>
>>           iptego GmbH
>>           Am Borsigturm 40
>>           13507 Berlin
>>           Germany
>>
>>           Amtsgericht Charlottenburg, HRB 101010
>>           Geschaeftsfuehrer: Alexander Hoffmann
>>
>>
>>
>>  ------------------------------------------------------------------------
>>
>>        _______________________________________________
>>        Semsdev mailing list
>>        [email protected] <mailto:[email protected]>
>>        http://lists.iptel.org/mailman/listinfo/semsdev
>>
>>
>>
>>
>
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to