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.220 by root, Thu Jan 10 05:43:14 2008 UTC vs.
Revision 1.222 by root, Sun Jan 20 10:22:07 2008 UTC

1123 if (expect_false (next->flags & CF_DESTROYED)) 1123 if (expect_false (next->flags & CF_DESTROYED))
1124 croak ("Coro::State::transfer called with destroyed next Coro::State, but can only transfer to inactive states"); 1124 croak ("Coro::State::transfer called with destroyed next Coro::State, but can only transfer to inactive states");
1125 1125
1126 if ( 1126 if (
1127#if PERL_VERSION_ATLEAST (5,9,0) 1127#if PERL_VERSION_ATLEAST (5,9,0)
1128 expect_false (PL_parser) 1128 expect_false (PL_parser && PL_parser->lex_state != LEX_NOTPARSING)
1129#else 1129#else
1130 expect_false (PL_lex_state != LEX_NOTPARSING) 1130 expect_false (PL_lex_state != LEX_NOTPARSING)
1131#endif 1131#endif
1132 ) 1132 )
1133 croak ("Coro::State::transfer called while parsing, but this is not supported"); 1133 croak ("Coro::State::transfer called while parsing, but this is not supported");
1909 SV *invoke = hv_delete (hv, "_invoke", sizeof ("_invoke") - 1, 0); 1909 SV *invoke = hv_delete (hv, "_invoke", sizeof ("_invoke") - 1, 0);
1910 AV *invoke_av; 1910 AV *invoke_av;
1911 int i, len; 1911 int i, len;
1912 1912
1913 if (!invoke) 1913 if (!invoke)
1914 {
1915 SvREFCNT_dec (PL_diehook); PL_diehook = 0;
1914 croak ("\3async_pool terminate\2\n"); 1916 croak ("\3async_pool terminate\2\n");
1917 }
1915 1918
1916 SvREFCNT_dec (coro->saved_deffh); 1919 SvREFCNT_dec (coro->saved_deffh);
1917 coro->saved_deffh = SvREFCNT_inc ((SV *)PL_defoutgv); 1920 coro->saved_deffh = SvREFCNT_inc ((SV *)PL_defoutgv);
1918 1921
1919 hv_store (hv, "desc", sizeof ("desc") - 1, 1922 hv_store (hv, "desc", sizeof ("desc") - 1,
1945 SvREFCNT_dec ((SV *)PL_defoutgv); PL_defoutgv = (GV *)coro->saved_deffh; 1948 SvREFCNT_dec ((SV *)PL_defoutgv); PL_defoutgv = (GV *)coro->saved_deffh;
1946 coro->saved_deffh = 0; 1949 coro->saved_deffh = 0;
1947 1950
1948 if (coro_rss (aTHX_ coro) > SvIV (sv_pool_rss) 1951 if (coro_rss (aTHX_ coro) > SvIV (sv_pool_rss)
1949 || av_len (av_async_pool) + 1 >= SvIV (sv_pool_size)) 1952 || av_len (av_async_pool) + 1 >= SvIV (sv_pool_size))
1953 {
1954 SvREFCNT_dec (PL_diehook); PL_diehook = 0;
1950 croak ("\3async_pool terminate\2\n"); 1955 croak ("\3async_pool terminate\2\n");
1956 }
1951 1957
1952 av_clear (GvAV (PL_defgv)); 1958 av_clear (GvAV (PL_defgv));
1953 hv_store ((HV *)SvRV (coro_current), "desc", sizeof ("desc") - 1, 1959 hv_store ((HV *)SvRV (coro_current), "desc", sizeof ("desc") - 1,
1954 newSVpvn ("[async_pool idle]", sizeof ("[async_pool idle]") - 1), 0); 1960 newSVpvn ("[async_pool idle]", sizeof ("[async_pool idle]") - 1), 0);
1955 1961

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines