Author: Armin Rigo <ar...@tunes.org> Branch: stm-gc Changeset: r52650:18482c0cbdd6 Date: 2012-02-19 19:12 +0100 http://bitbucket.org/pypy/pypy/changeset/18482c0cbdd6/
Log: Fix the 'transaction' module too. diff --git a/pypy/module/transaction/interp_transaction.py b/pypy/module/transaction/interp_transaction.py --- a/pypy/module/transaction/interp_transaction.py +++ b/pypy/module/transaction/interp_transaction.py @@ -261,7 +261,7 @@ def _run(): # --- start the threads --- don't use the GC here any more! --- for i in range(state.num_threads): - threadintf.start_new_thread(_run_thread, ()) + threadintf.start_new_thread(_run_thread) # state.lock_unfinished() # wait for all threads to finish # --- done, we can use the GC again --- diff --git a/pypy/module/transaction/threadintf.py b/pypy/module/transaction/threadintf.py --- a/pypy/module/transaction/threadintf.py +++ b/pypy/module/transaction/threadintf.py @@ -1,6 +1,8 @@ import thread from pypy.module.thread import ll_thread from pypy.rlib.objectmodel import we_are_translated +from pypy.rpython.annlowlevel import llhelper +from pypy.rlib.debug import fatalerror null_ll_lock = ll_thread.null_ll_lock @@ -23,9 +25,11 @@ else: lock.release() -def start_new_thread(callback, args): - assert args == () +def start_new_thread(callback): if we_are_translated(): - ll_thread.start_new_thread(callback, args) + llcallback = llhelper(ll_thread.CALLBACK, callback) + ident = ll_thread.c_thread_start_NOGIL(llcallback) + if ident == -1: + fatalerror("cannot start thread") else: - thread.start_new_thread(callback, args) + thread.start_new_thread(callback, ()) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit