… | |
… | |
114 | X_THREAD_PROC(thread_proc) |
114 | X_THREAD_PROC(thread_proc) |
115 | { |
115 | { |
116 | PERL_SET_CONTEXT (perl_thx); |
116 | PERL_SET_CONTEXT (perl_thx); |
117 | |
117 | |
118 | { |
118 | { |
119 | dTHX; /* inefficient, we already have perl_thx, but I see no better way */ |
119 | dTHXa (perl_thx); |
120 | dJMPENV; |
120 | dJMPENV; |
121 | struct tctx *ctx; |
121 | struct tctx *ctx; |
122 | int catchret; |
122 | int catchret; |
123 | |
123 | |
124 | X_LOCK (release_m); |
124 | X_LOCK (release_m); |
… | |
… | |
246 | jeret = ctx->jeret; |
246 | jeret = ctx->jeret; |
247 | tctx_put (ctx); |
247 | tctx_put (ctx); |
248 | pthread_sigmask (SIG_SETMASK, &cursigset, 0); |
248 | pthread_sigmask (SIG_SETMASK, &cursigset, 0); |
249 | |
249 | |
250 | if (jeret) |
250 | if (jeret) |
|
|
251 | { |
|
|
252 | dTHX; |
251 | JMPENV_JUMP (jeret); |
253 | JMPENV_JUMP (jeret); |
|
|
254 | } |
252 | } |
255 | } |
253 | |
256 | |
254 | static void |
257 | static void |
255 | set_thread_enable (pTHX_ void *arg) |
258 | set_thread_enable (pTHX_ void *arg) |
256 | { |
259 | { |