Shane Hathaway wrote:
On 08/27/2003 07:55 PM, Christian Tismer wrote:

just by chance, I got into the position to try out
Zope 2.7.0 beta 1/2, and since it needs Python 2.2.3
at least, and Stackless 3.0 was just ported to that, I tried
to build Zope with Stackless 3.0.

It works very very well! After a few patches to get the includes
right, here the installation instructions.

I am in awe. Cool. :-)

However, I am also a little confused. As I understand it, Stackless needs all C code to be non-reentrant, i.e. C code must never call back into Python.

This has never been so. It was so that Stackless 1.0 could only do its switching if there was no recursive call, sure. But it was always allowed. Stackless 2.0 does it the brute-force way, by moving C stacks around. Stackless 3.0 does all of it, whatever is possible. That means, you can switch whatever, even extension C code with Python callbacks. But cooperative code can switch faster.

But Zope has a lot of reentrant code, especially in Acquisition and ZODB. Doesn't that prevent Zope from taking advantage of Stackless continuations?

No continuations, tasklets. :-)

ciao - chris

Christian Tismer             :^)   <mailto:[EMAIL PROTECTED]>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship*
14109 Berlin                 :     PGP key ->
work +49 30 89 09 53 34  home +49 30 802 86 56  pager +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
     whom do you want to sponsor today?

Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists - )

Reply via email to