Re: A thread import problem

Discussion in 'Python' started by Bruce Sherwood, Jul 21, 2012.

  1. Thanks much for this suggestion. I'm not sure I've correctly
    understood the operation "start_new_thread(lambda: __import__(<your
    module>), ())". By "your module" do you mean the user program which
    imported the module that will execute start_new_thread? It hadn't
    occurred to me to have A import B and B import A, though now that you
    describe this (if that's indeed what you mean) it makes sense. The
    original instance of A won't get past its initial import statement
    because the main loop won't return to it.

    Bruce Sherwood

    On Sat, Jul 21, 2012 at 2:32 AM, Dieter Maurer <> wrote:
    > Bruce Sherwood <> writes:
    >> ...
    >> from visual import box, rate
    >> b = box()
    >> while True:
    >> rate(100) # no more than 100 iterations per second
    >> b.pos.x += .01
    >>
    >> This works because a GUI environment is invoked by the visual module
    >> in a secondary thread (written mainly in C++, connected to Python by
    >> Boost). The OpenGL rendering of the box in its current position is
    >> driven by a 30-millisecond timer. This works fine with any environment
    >> other than Mac Cocoa.
    >>
    >> However, the Mac Cocoa GUI environment and interact loop are required
    >> to be the primary thread, so the challenge is to have the visual
    >> module set up the Cocoa environment, with the user's program running
    >> in a secondary thread. Any ideas?

    >
    > The usual approach to this situation is to invoke the user code via
    > a callback from the UI main loop or invoke it explicitely
    > after the UI system has been set up immediately before its main loop
    > is called. Might look somehow like this:
    >
    > main thread:
    >
    > from thread import start_new_thread
    > from visual import setup_gui, start_main_loop
    > setup_gui() # sets up the GUI subsystem
    > start_new_thread(lambda: __import__(<your module>), ())
    > start_main_loop()
    Bruce Sherwood, Jul 21, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Stefan Seefeld
    Replies:
    3
    Views:
    945
  2. per9000
    Replies:
    7
    Views:
    392
    Magnus Lycka
    Feb 27, 2006
  3. Bruce Sherwood

    A thread import problem

    Bruce Sherwood, Jul 19, 2012, in forum: Python
    Replies:
    0
    Views:
    145
    Bruce Sherwood
    Jul 19, 2012
  4. Dennis Lee Bieber

    Re: A thread import problem

    Dennis Lee Bieber, Jul 19, 2012, in forum: Python
    Replies:
    0
    Views:
    159
    Dennis Lee Bieber
    Jul 19, 2012
  5. Dieter Maurer

    Re: A thread import problem

    Dieter Maurer, Jul 19, 2012, in forum: Python
    Replies:
    0
    Views:
    135
    Dieter Maurer
    Jul 19, 2012
Loading...

Share This Page