ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Coro/State.xs
(Generate patch)

Comparing Coro/Coro/State.xs (file contents):
Revision 1.239 by root, Sat Jun 28 23:14:19 2008 UTC vs.
Revision 1.241 by root, Mon Jul 21 02:39:15 2008 UTC

686static int (*orig_sigelem_get) (pTHX_ SV *sv, MAGIC *mg); 686static int (*orig_sigelem_get) (pTHX_ SV *sv, MAGIC *mg);
687static int (*orig_sigelem_set) (pTHX_ SV *sv, MAGIC *mg); 687static int (*orig_sigelem_set) (pTHX_ SV *sv, MAGIC *mg);
688static int (*orig_sigelem_clr) (pTHX_ SV *sv, MAGIC *mg); 688static int (*orig_sigelem_clr) (pTHX_ SV *sv, MAGIC *mg);
689 689
690/* apparently < 5.8.8 */ 690/* apparently < 5.8.8 */
691#undef MgPV_nolen_const
692#ifndef MgPV_nolen_const 691#ifndef MgPV_nolen_const
693#define MgPV_nolen_const(mg) (((((int)(mg)->mg_len)) == HEf_SVKEY) ? \ 692#define MgPV_nolen_const(mg) (((((int)(mg)->mg_len)) == HEf_SVKEY) ? \
694 SvPV_nolen_const((SV*)((mg)->mg_ptr)) : \ 693 SvPV_nolen((SV*)((mg)->mg_ptr)) : \
695 (const char*)(mg)->mg_ptr) 694 (const char*)(mg)->mg_ptr)
696#endif 695#endif
697 696
698/* 697/*
699 * This overrides the default magic get method of %SIG elements. 698 * This overrides the default magic get method of %SIG elements.
2025 AV *invoke_av; 2024 AV *invoke_av;
2026 int i, len; 2025 int i, len;
2027 2026
2028 if (!invoke) 2027 if (!invoke)
2029 { 2028 {
2030 SvREFCNT_dec (PL_diehook); PL_diehook = 0; 2029 SV *old = PL_diehook;
2030 PL_diehook = 0;
2031 SvREFCNT_dec (old);
2031 croak ("\3async_pool terminate\2\n"); 2032 croak ("\3async_pool terminate\2\n");
2032 } 2033 }
2033 2034
2034 SvREFCNT_dec (coro->saved_deffh); 2035 SvREFCNT_dec (coro->saved_deffh);
2035 coro->saved_deffh = SvREFCNT_inc ((SV *)PL_defoutgv); 2036 coro->saved_deffh = SvREFCNT_inc ((SV *)PL_defoutgv);
2064 coro->saved_deffh = 0; 2065 coro->saved_deffh = 0;
2065 2066
2066 if (coro_rss (aTHX_ coro) > SvIV (sv_pool_rss) 2067 if (coro_rss (aTHX_ coro) > SvIV (sv_pool_rss)
2067 || av_len (av_async_pool) + 1 >= SvIV (sv_pool_size)) 2068 || av_len (av_async_pool) + 1 >= SvIV (sv_pool_size))
2068 { 2069 {
2069 SvREFCNT_dec (PL_diehook); PL_diehook = 0; 2070 SV *old = PL_diehook;
2071 PL_diehook = 0;
2072 SvREFCNT_dec (old);
2070 croak ("\3async_pool terminate\2\n"); 2073 croak ("\3async_pool terminate\2\n");
2071 } 2074 }
2072 2075
2073 av_clear (GvAV (PL_defgv)); 2076 av_clear (GvAV (PL_defgv));
2074 hv_store ((HV *)SvRV (coro_current), "desc", sizeof ("desc") - 1, 2077 hv_store ((HV *)SvRV (coro_current), "desc", sizeof ("desc") - 1,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines