… | |
… | |
1901 | PROTOTYPE: $;$ |
1901 | PROTOTYPE: $;$ |
1902 | CODE: |
1902 | CODE: |
1903 | SvREFCNT_dec (self->throw); |
1903 | SvREFCNT_dec (self->throw); |
1904 | self->throw = SvOK (throw) ? newSVsv (throw) : 0; |
1904 | self->throw = SvOK (throw) ? newSVsv (throw) : 0; |
1905 | |
1905 | |
|
|
1906 | void |
|
|
1907 | swap_defsv (Coro::State self) |
|
|
1908 | PROTOTYPE: $ |
|
|
1909 | ALIAS: |
|
|
1910 | swap_defav = 1 |
|
|
1911 | CODE: |
|
|
1912 | if (!self->slot) |
|
|
1913 | croak ("cannot swap state with coroutine that has no saved state"); |
|
|
1914 | else |
|
|
1915 | { |
|
|
1916 | SV **src = ix ? (SV *)&GvAV (PL_defgv) : &GvSV (PL_defgv); |
|
|
1917 | SV **dst = ix ? self->slot->defav : self->slot->defsv; |
|
|
1918 | |
|
|
1919 | SV *tmp = *src; *src = *dst; *dst = tmp; |
|
|
1920 | } |
|
|
1921 | |
1906 | # for async_pool speedup |
1922 | # for async_pool speedup |
1907 | void |
1923 | void |
1908 | _pool_1 (SV *cb) |
1924 | _pool_1 (SV *cb) |
1909 | CODE: |
1925 | CODE: |
1910 | { |
1926 | { |