Skip to content

Commit ddf9917

Browse files
committed
wip
1 parent f384649 commit ddf9917

12 files changed

+104
-83
lines changed

src/IcedTasks/CancellablePoolingValueTask.fs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ module CancellablePoolingValueTasks =
6565
| InitialYield ->
6666
state <- Running
6767

68-
if Trampoline.Current.Check() then
68+
if Trampoline.IncrementBindCount() then
6969
MethodBuilder.AwaitUnsafeOnCompleted(
7070
&sm.Data.MethodBuilder,
71-
Trampoline.Current.AwaiterRef,
71+
Trampoline.AwaiterRef,
7272
&sm
7373
)
7474
else
@@ -80,11 +80,11 @@ module CancellablePoolingValueTasks =
8080
if step then
8181
state <- SetResult
8282

83-
if Trampoline.Current.Check() then
83+
if Trampoline.IncrementBindCount() then
8484
// Yield before setting result to prevent stack overflow.
8585
MethodBuilder.AwaitUnsafeOnCompleted(
8686
&sm.Data.MethodBuilder,
87-
Trampoline.Current.AwaiterRef,
87+
Trampoline.AwaiterRef,
8888
&sm
8989
)
9090
else
@@ -103,11 +103,11 @@ module CancellablePoolingValueTasks =
103103
with exn ->
104104
state <- SetException(ExceptionCache.CaptureOrRetrieve exn)
105105

106-
if Trampoline.Current.Check() then
106+
if Trampoline.IncrementBindCount() then
107107
// Yield before setting exception to prevent stack overflow.
108108
MethodBuilder.AwaitUnsafeOnCompleted(
109109
&sm.Data.MethodBuilder,
110-
Trampoline.Current.AwaiterRef,
110+
Trampoline.AwaiterRef,
111111
&sm
112112
)
113113
else

src/IcedTasks/CancellableTask.fs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ module CancellableTasks =
6363
| InitialYield ->
6464
state <- Running
6565

66-
if Trampoline.Current.Check() then
66+
if Trampoline.IncrementBindCount() then
6767
MethodBuilder.AwaitUnsafeOnCompleted(
6868
&sm.Data.MethodBuilder,
69-
Trampoline.Current.AwaiterRef,
69+
Trampoline.AwaiterRef,
7070
&sm
7171
)
7272

@@ -79,11 +79,11 @@ module CancellableTasks =
7979
if step then
8080
state <- SetResult
8181

82-
if Trampoline.Current.Check() then
82+
if Trampoline.IncrementBindCount() then
8383
// Yield before setting result to prevent stack overflow.
8484
MethodBuilder.AwaitUnsafeOnCompleted(
8585
&sm.Data.MethodBuilder,
86-
Trampoline.Current.AwaiterRef,
86+
Trampoline.AwaiterRef,
8787
&sm
8888
)
8989

@@ -103,11 +103,11 @@ module CancellableTasks =
103103
with exn ->
104104
state <- SetException(ExceptionCache.CaptureOrRetrieve exn)
105105

106-
if Trampoline.Current.Check() then
106+
if Trampoline.IncrementBindCount() then
107107
// Yield before setting exception to prevent stack overflow.
108108
MethodBuilder.AwaitUnsafeOnCompleted(
109109
&sm.Data.MethodBuilder,
110-
Trampoline.Current.AwaiterRef,
110+
Trampoline.AwaiterRef,
111111
&sm
112112
)
113113

src/IcedTasks/CancellableTaskBuilderBase.fs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,13 @@ module CancellableTaskBase =
5151

5252
let inline yieldOnBindLimit () =
5353
CancellableTaskBaseCode(fun sm ->
54-
if Trampoline.Current.Check() then
54+
if Trampoline.IncrementBindCount() then
5555
let __stack_yield_fin = ResumableCode.Yield().Invoke(&sm)
5656

5757
if not __stack_yield_fin then
58-
let mutable __stack_awaiter = Trampoline.Current
59-
6058
MethodBuilder.AwaitUnsafeOnCompleted(
6159
&sm.Data.MethodBuilder,
62-
&__stack_awaiter,
60+
Trampoline.AwaiterRef,
6361
&sm
6462
)
6563

src/IcedTasks/CancellableValueTask.fs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ module CancellableValueTasks =
6565
| InitialYield ->
6666
state <- Running
6767

68-
if Trampoline.Current.Check() then
68+
if Trampoline.IncrementBindCount() then
6969
MethodBuilder.AwaitUnsafeOnCompleted(
7070
&sm.Data.MethodBuilder,
71-
Trampoline.Current.AwaiterRef,
71+
Trampoline.AwaiterRef,
7272
&sm
7373
)
7474
else
@@ -80,10 +80,10 @@ module CancellableValueTasks =
8080
if step then
8181
state <- SetResult
8282

83-
if Trampoline.Current.Check() then
83+
if Trampoline.IncrementBindCount() then
8484
MethodBuilder.AwaitUnsafeOnCompleted(
8585
&sm.Data.MethodBuilder,
86-
Trampoline.Current.AwaiterRef,
86+
Trampoline.AwaiterRef,
8787
&sm
8888
)
8989
else
@@ -102,10 +102,10 @@ module CancellableValueTasks =
102102
with exn ->
103103
state <- SetException(ExceptionCache.CaptureOrRetrieve exn)
104104

105-
if Trampoline.Current.Check() then
105+
if Trampoline.IncrementBindCount() then
106106
MethodBuilder.AwaitUnsafeOnCompleted(
107107
&sm.Data.MethodBuilder,
108-
Trampoline.Current.AwaiterRef,
108+
Trampoline.AwaiterRef,
109109
&sm
110110
)
111111
else

src/IcedTasks/ColdTask.fs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,13 @@ module ColdTasks =
5252

5353
let inline yieldOnBindLimit () =
5454
ColdTaskCode(fun sm ->
55-
if Trampoline.Current.Check() then
55+
if Trampoline.IncrementBindCount() then
5656
let __stack_yield_fin = ResumableCode.Yield().Invoke(&sm)
5757

5858
if not __stack_yield_fin then
59-
let mutable __stack_awaiter = Trampoline.Current
60-
6159
MethodBuilder.AwaitUnsafeOnCompleted(
6260
&sm.Data.MethodBuilder,
63-
&__stack_awaiter,
61+
Trampoline.AwaiterRef,
6462
&sm
6563
)
6664

@@ -322,10 +320,10 @@ module ColdTasks =
322320
| InitialYield ->
323321
state <- Running
324322

325-
if Trampoline.Current.Check() then
323+
if Trampoline.IncrementBindCount() then
326324
MethodBuilder.AwaitUnsafeOnCompleted(
327325
&sm.Data.MethodBuilder,
328-
Trampoline.Current.AwaiterRef,
326+
Trampoline.AwaiterRef,
329327
&sm
330328
)
331329

@@ -338,11 +336,11 @@ module ColdTasks =
338336
if step then
339337
state <- SetResult
340338

341-
if Trampoline.Current.Check() then
339+
if Trampoline.IncrementBindCount() then
342340
// Yield before setting result to prevent stack overflow.
343341
MethodBuilder.AwaitUnsafeOnCompleted(
344342
&sm.Data.MethodBuilder,
345-
Trampoline.Current.AwaiterRef,
343+
Trampoline.AwaiterRef,
346344
&sm
347345
)
348346

@@ -362,11 +360,11 @@ module ColdTasks =
362360
with exn ->
363361
state <- SetException(ExceptionCache.CaptureOrRetrieve exn)
364362

365-
if Trampoline.Current.Check() then
363+
if Trampoline.IncrementBindCount() then
366364
// Yield before setting exception to prevent stack overflow.
367365
MethodBuilder.AwaitUnsafeOnCompleted(
368366
&sm.Data.MethodBuilder,
369-
Trampoline.Current.AwaiterRef,
367+
Trampoline.AwaiterRef,
370368
&sm
371369
)
372370

src/IcedTasks/PoolingValueTask.fs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ module PoolingValueTasks =
5959
| InitialYield ->
6060
state <- Running
6161

62-
if Trampoline.Current.Check() then
62+
if Trampoline.IncrementBindCount() then
6363
MethodBuilder.AwaitUnsafeOnCompleted(
6464
&sm.Data.MethodBuilder,
65-
Trampoline.Current.AwaiterRef,
65+
Trampoline.AwaiterRef,
6666
&sm
6767
)
6868
else
@@ -74,11 +74,11 @@ module PoolingValueTasks =
7474
if step then
7575
state <- SetResult
7676

77-
if Trampoline.Current.Check() then
77+
if Trampoline.IncrementBindCount() then
7878
// Yield before setting result to prevent stack overflow.
7979
MethodBuilder.AwaitUnsafeOnCompleted(
8080
&sm.Data.MethodBuilder,
81-
Trampoline.Current.AwaiterRef,
81+
Trampoline.AwaiterRef,
8282
&sm
8383
)
8484
else
@@ -97,11 +97,11 @@ module PoolingValueTasks =
9797
with exn ->
9898
state <- SetException(ExceptionCache.CaptureOrRetrieve exn)
9999

100-
if Trampoline.Current.Check() then
100+
if Trampoline.IncrementBindCount() then
101101
// Yield before setting exception to prevent stack overflow.
102102
MethodBuilder.AwaitUnsafeOnCompleted(
103103
&sm.Data.MethodBuilder,
104-
Trampoline.Current.AwaiterRef,
104+
Trampoline.AwaiterRef,
105105
&sm
106106
)
107107
else

src/IcedTasks/Task.fs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ module Tasks =
6363
| InitialYield ->
6464
state <- Running
6565

66-
if Trampoline.Current.Check() then
66+
if Trampoline.IncrementBindCount() then
6767
MethodBuilder.AwaitUnsafeOnCompleted(
6868
&sm.Data.MethodBuilder,
69-
Trampoline.Current.AwaiterRef,
69+
Trampoline.AwaiterRef,
7070
&sm
7171
)
7272
else
@@ -78,11 +78,11 @@ module Tasks =
7878
if step then
7979
state <- SetResult
8080

81-
if Trampoline.Current.Check() then
81+
if Trampoline.IncrementBindCount() then
8282
// Yield before setting result to prevent stack overflow.
8383
MethodBuilder.AwaitUnsafeOnCompleted(
8484
&sm.Data.MethodBuilder,
85-
Trampoline.Current.AwaiterRef,
85+
Trampoline.AwaiterRef,
8686
&sm
8787
)
8888
else
@@ -101,11 +101,11 @@ module Tasks =
101101
with exn ->
102102
state <- SetException(ExceptionCache.CaptureOrRetrieve exn)
103103

104-
if Trampoline.Current.Check() then
104+
if Trampoline.IncrementBindCount() then
105105
// Yield before setting exception to prevent stack overflow.
106106
MethodBuilder.AwaitUnsafeOnCompleted(
107107
&sm.Data.MethodBuilder,
108-
Trampoline.Current.AwaiterRef,
108+
Trampoline.AwaiterRef,
109109
&sm
110110
)
111111
else

src/IcedTasks/TaskBuilderBase.fs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,14 @@ module TaskBase =
4242

4343
let inline yieldOnBindLimit () =
4444
TaskBaseCode(fun sm ->
45-
if Trampoline.Current.Check() then
45+
if Trampoline.IncrementBindCount() then
4646
let __stack_yield_fin = ResumableCode.Yield().Invoke(&sm)
4747

4848
if not __stack_yield_fin then
49-
let mutable __stack_awaiter = Trampoline.Current
5049

5150
MethodBuilder.AwaitUnsafeOnCompleted(
5251
&sm.Data.MethodBuilder,
53-
&__stack_awaiter,
52+
Trampoline.AwaiterRef,
5453
&sm
5554
)
5655

src/IcedTasks/TaskUnit.fs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ module TasksUnit =
5959
| InitialYield ->
6060
state <- Running
6161

62-
if Trampoline.Current.Check() then
62+
if Trampoline.IncrementBindCount() then
6363
MethodBuilder.AwaitUnsafeOnCompleted(
6464
&sm.Data.MethodBuilder,
65-
Trampoline.Current.AwaiterRef,
65+
Trampoline.AwaiterRef,
6666
&sm
6767
)
6868
else
@@ -74,11 +74,11 @@ module TasksUnit =
7474
if step then
7575
state <- SetResult
7676

77-
if Trampoline.Current.Check() then
77+
if Trampoline.IncrementBindCount() then
7878
// Yield before setting result to prevent stack overflow.
7979
MethodBuilder.AwaitUnsafeOnCompleted(
8080
&sm.Data.MethodBuilder,
81-
Trampoline.Current.AwaiterRef,
81+
Trampoline.AwaiterRef,
8282
&sm
8383
)
8484
else
@@ -97,11 +97,11 @@ module TasksUnit =
9797
with exn ->
9898
state <- SetException(ExceptionCache.CaptureOrRetrieve exn)
9999

100-
if Trampoline.Current.Check() then
100+
if Trampoline.IncrementBindCount() then
101101
// Yield before setting exception to prevent stack overflow.
102102
MethodBuilder.AwaitUnsafeOnCompleted(
103103
&sm.Data.MethodBuilder,
104-
Trampoline.Current.AwaiterRef,
104+
Trampoline.AwaiterRef,
105105
&sm
106106
)
107107
else

0 commit comments

Comments
 (0)