Stackless Platform Independence?
Aahz Maruch
aahz at panix.com
Sun Mar 3 23:31:58 EST 2002
In article <3C829AA2.1B21E205 at arakne.com>,
Frederic Giacometti <frederic.giacometti at arakne.com> wrote:
>Aahz Maruch wrote:
>> In article <I7Qd8.66687$dG.27729291 at news1.rdc1.sdca.home.com>,
>> Frederic Giacometti <frederic.giacometti at arakne.com> wrote:
>>>
>>>In addition to all the benefits that Christian has described so far,
>>>stackless python would make it possible to have a different OS
>>>multi-threading implementation for calling external C/C++ libraries; one
>>>that does not require interpreter lock operations.
>>>
>>> [...]
>>>
>>>Stackless just means that function calls executed by the bytecode are
>>>executed by a C function that returns immediately; thus disconnecting
>>>the C call stack from the virtual machine call stack. In current
>>>python, they are interleaved one-on-one; making it impossible to switch
>>>context within the VM unnless you do Christian's last 'non-portable'
>>>assembly language manipulation.
>>
>> How's that again? In the absence of pre-emptive thread scheduling, what
>> good is the immediate return from the C function? More than that, how
>> can you possibly call external libraries without the interpreter lock,
>> if those libraries have any access to Python variables? If they *don't*
>> have access to Python, how is that any different from just using the
>> macros Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS?
>
>Just reverse the paradigm: have the python VM run in a single thread,
>using stackless microthreads for python multithreading, and run the C
>calls in a pool of threads. This way: no lock is needed, since only
>one thread runs the VM, with the help of microthreads, and C calls run
>in other threads.
This doesn't make any sense unless you assume OS-level threads, and I
thought part of the point of Stackless was to avoid requiring OS-level
threads.
--
--- Aahz <*> (Copyright 2002 by aahz at pobox.com)
Hugs and backrubs -- I break Rule 6 http://www.rahul.net/aahz/
Androgynous poly kinky vanilla queer het Pythonista
"How come we choose from just two people for President but more than 50
for Miss America?" --AEN
More information about the Python-list
mailing list