… | … | ||
---|---|---|---|
48 | 48 | ||
49 | our $VERSION = 5.0; | 49 | our $VERSION = 5.0; |
50 | our $WATCHER; | 50 | our $WATCHER; |
51 | 51 | ||
52 | BDB::set_sync_prepare { | 52 | BDB::set_sync_prepare { |
53 | my $status; | 53 | my $cb = Coro::rouse_cb; |
54 | my $current = $Coro::current; | ||
55 | ( | 54 | ( |
56 | sub { | 55 | sub { $cb->($!) }, |
57 | $status = $!; | 56 | sub { $! = Coro::rouse_wait }, |
58 | $current->ready; undef $current; | ||
59 | }, | ||
60 | sub { | ||
61 | Coro::schedule while defined $current; | ||
62 | $! = $status; | ||
63 | }, | ||
64 | ) | 57 | ) |
65 | }; | 58 | }; |
66 | 59 | ||
67 | =back | 60 | =back |
68 | 61 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |