[Python-Dev] Replacing threads with swapcontext()
Nick Coghlan
ncoghlan at gmail.com
Wed Mar 31 23:53:50 CEST 2010
Alexander Sabourenkov wrote:
> Hello.
>
> I have went and replaced Python threads with explicitly-scheduled
> coroutines using swapcontext() family of functions (basically out of
> frustration with the greenlet).
>
> I have two questions.
>
> 1. Is it as dangerous to switch C stacks and not switch PyThreadState as
> I suspect? In particular, how tightly is PyThreadState::frame coupled to
> current C stack?
Off the top of my head, recursion limit checks will definitely go
haywire, and I would expect threading.local() and exception handling to
explode at some point (although the latter depends on what you mean by
"switching C stacks" - if you really are just fiddling the stack pointer
without affecting the thread local heap storage mechanisms, the latter
two should be fine. Still doesn't sound like a good idea though).
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
More information about the Python-Dev
mailing list