Hi Armin,

I tried the following in one thread, and it hang in
pypy_execute_source_ptr().
*     rpython_startup_code();
*     pypy_init_threads();
*     pypy_setup_home(...)
*     pypy_execute_source_ptr()

On Tue, Sep 8, 2015 at 7:40 PM, Armin Rigo <ar...@tunes.org> wrote:

> Hi Yicong,
>
> On Tue, Sep 8, 2015 at 1:35 PM, Yicong Huang <hengha....@gmail.com> wrote:
> > The process looks like:
> > Main process create thread pool -> thread 1 initialized Pypy-> thread 1
> run
> > Python code -> thread 1 finish -> thread 1 finalize Pypy -> thread 2
> > initialized Pypy -> thread 2 run Python code -> thread 2 finish ->
> thread 2
> > finialize Pypy ...
>
> It's most probably fine to do the following in the thread:
>
> * first, acquire a lock to make sure there are no race conditions
> * if pypy has not been initialized so far:
> *     rpython_startup_code();
> *     pypy_init_threads();
> *     pypy_setup_home(...)
> *     any other initialization, like pypy_execute_source_ptr()
> * else:
> *     pypy_thread_attach();
> * release the lock
> * call python code
>
>
> A bientôt,
>
> Armin.
>
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to