File tree Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -53,10 +53,15 @@ macro generator(fd)
53
53
$ gt!var = $ GenTask (current_task (), Task (() -> begin
54
54
try
55
55
@assert current_task () === $ gt!var. iteratee
56
- $ body
57
- yieldto ($ gt!var. iterater, $ StopIteration ())
56
+ try
57
+ $ body
58
+ finally
59
+ yieldto ($ gt!var. iterater, $ StopIteration ())
60
+ end
58
61
catch e
59
- Base. throwto ($ gt!var. iterater, e)
62
+ if ! istaskdone ($ gt!var. iterater)
63
+ Base. throwto ($ gt!var. iterater, e)
64
+ end
60
65
end
61
66
end ))
62
67
return $ gt!var
Original file line number Diff line number Diff line change
1
+
2
+ using PyStyleButUnidirGenerators
3
+
4
+ # #.
5
+ @generator function organpipe (n:: Integer )
6
+ i = 0
7
+ while i != n
8
+ i += 1
9
+ @yield i
10
+ end
11
+ while true
12
+ i -= 1
13
+ i == 0 && return
14
+ @yield i
15
+ end
16
+ end
17
+
18
+ # #.
19
+ collect (organpipe (2 ))
You can’t perform that action at this time.
0 commit comments