… | |
… | |
436 | } |
436 | } |
437 | |
437 | |
438 | =item $coroutine->throw ([$scalar]) |
438 | =item $coroutine->throw ([$scalar]) |
439 | |
439 | |
440 | If C<$throw> is specified and defined, it will be thrown as an exception |
440 | If C<$throw> is specified and defined, it will be thrown as an exception |
441 | inside the coroutine at the next convenient point in time (usually after |
441 | inside the coroutine at the next convenient point in time. Otherwise |
442 | it gains control at the next schedule/transfer/cede). Otherwise clears the |
|
|
443 | exception object. |
442 | clears the exception object. |
|
|
443 | |
|
|
444 | Coro will check for the exception each time a schedule-like-function |
|
|
445 | returns, i.e. after each C<schedule>, C<cede>, C<< Coro::Semaphore->down |
|
|
446 | >>, C<< Coro::Handle->readable >> and so on. Most of these functions |
|
|
447 | detect this case and return early in case an exception is pending. |
444 | |
448 | |
445 | The exception object will be thrown "as is" with the specified scalar in |
449 | The exception object will be thrown "as is" with the specified scalar in |
446 | C<$@>, i.e. if it is a string, no line number or newline will be appended |
450 | C<$@>, i.e. if it is a string, no line number or newline will be appended |
447 | (unlike with C<die>). |
451 | (unlike with C<die>). |
448 | |
452 | |