Message134476
> > How about deleting the mapping (pthread_key_delete) and recreating it
> > from scratch, then?
>
> Sounds good.
> So the idea would be to retrieve the current thread's tstate, destroy
> the current autoTLSkey, re-create it, and re-associate the current
> tstate to this new key. I just did a quick test on RHEL4 and it works.
> PyThread_ReinitTLS looks like a good candidate for that, but it's the
> same problem, autoTLSkey scope is limited to pystates.c (and I'm not
> sure that the tstate should be exposed to platform thread
> implementations).
> There's also PyEval_ReinitThreads in ceval.c, exposing the autoTLSkey
> would make more sense (and it already knows about tstate, of course).
> Where would you put it?
You could add a new _PyGILState_ReInit() function and call it from
PyOS_AfterFork() or PyEval_ReInitThreads().
(perhaps you also need to add a TLS-destroying function to thread.c, I
haven't looked) |
|
Date |
User |
Action |
Args |
2011-04-26 16:26:19 | pitrou | set | recipients:
+ pitrou, bquinlan, kristjan.jonsson, jnoller, dmalcolm, sandro.tosi, ysj.ray, neologix, lukasz.langa |
2011-04-26 16:26:18 | pitrou | link | issue10517 messages |
2011-04-26 16:26:18 | pitrou | create | |
|