Skip to content

Commit 853f4f4

Browse files
committed
Remove BeginSubscription from Unsubscriber.
1 parent ab22b39 commit 853f4f4

File tree

9 files changed

+21
-51
lines changed

9 files changed

+21
-51
lines changed

src/AsyncFiberWorks/Channels/Unsubscriber.cs

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
using AsyncFiberWorks.Core;
21
using System;
32

43
namespace AsyncFiberWorks.Channels
54
{
65
/// <summary>
76
/// Disposables.
87
/// </summary>
9-
public class Unsubscriber: ISubscriptionRegistry, IDisposable
8+
public class Unsubscriber: IDisposable
109
{
1110
private readonly object _lock = new object();
1211
private Action _actionUnsubscribe;
@@ -33,52 +32,28 @@ public Unsubscriber(Action action)
3332
/// <summary>
3433
/// Add a disposable.
3534
/// </summary>
36-
/// <param name="action"></param>
37-
public void Add(Action action)
35+
/// <param name="disposingAction">A disposable.</param>
36+
public void Add(Action disposingAction)
3837
{
3938
bool added = false;
4039
lock (_lock)
4140
{
4241
if (!_disposed)
4342
{
44-
_actionUnsubscribe += action;
43+
_actionUnsubscribe += disposingAction;
4544
added = true;
4645
}
4746
}
4847
if (!added)
4948
{
50-
action();
49+
disposingAction();
5150
}
5251
}
5352

5453
/// <summary>
55-
/// Create and register a new Unsubscriber.
56-
/// It will be disposed when the subscription target ends.
54+
/// Add a disposable.
5755
/// </summary>
58-
/// <returns>Created unsubscriber.</returns>
59-
public Unsubscriber BeginSubscription()
60-
{
61-
var unsubscriber = new Unsubscriber();
62-
Action action = () => unsubscriber.Dispose();
63-
this.Add(action);
64-
Action disposable = () => this.Remove(action);
65-
unsubscriber.Add(disposable);
66-
return unsubscriber;
67-
}
68-
69-
private bool Remove(Action action)
70-
{
71-
lock (_lock)
72-
{
73-
if (!_disposed)
74-
{
75-
_actionUnsubscribe -= action;
76-
return true;
77-
}
78-
}
79-
return false;
80-
}
81-
56+
/// <param name="disposable">A disposable.</param>
8257
public void AddDisposable(IDisposable disposable)
8358
{
8459
this.Add(() => disposable.Dispose());

src/AsyncFiberWorks/Core/ISubscriptionRegistry.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ namespace AsyncFiberWorks.Core
88
public interface ISubscriptionRegistry
99
{
1010
/// <summary>
11-
/// Create an unsubscriber who unsubscribes when the fiber is discarded.
11+
/// Begin subscription.
1212
/// </summary>
13-
/// <returns>Unsubscriber with the unregister process as an element.</returns>
13+
/// <returns>Unsubscribers. It is also discarded when the subscription subject is terminated.</returns>
1414
Unsubscriber BeginSubscription();
1515
}
1616
}

src/AsyncFiberWorks/Core/Subscriptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class Subscriptions : ISubscriptionRegistry, IDisposable
1919
/// </summary>
2020
/// <param name="toAdd"></param>
2121
/// <returns>A disposer to unregister the subscription.</returns>
22-
public IDisposable RegisterSubscription(IDisposable toAdd)
22+
private IDisposable RegisterSubscription(IDisposable toAdd)
2323
{
2424
bool added = false;
2525
lock (_lock)

src/AsyncFiberWorks/Fibers/ISubscribableFiber.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,7 @@ namespace AsyncFiberWorks.Fibers
77
/// Enqueue pending actions to the execution context.
88
/// Subscription available for continued fiber use. All are cancelled when fiber is destroyed.
99
/// </summary>
10-
public interface ISubscribableFiber : IExecutionContext
10+
public interface ISubscribableFiber : IExecutionContext, ISubscriptionRegistry
1111
{
12-
/// <summary>
13-
/// Begin subscription.
14-
/// </summary>
15-
/// <returns>Unsubscribers. It is also discarded when the subscription subject is terminated.</returns>
16-
Unsubscriber BeginSubscription();
1712
}
1813
}

src/AsyncFiberWorks/Fibers/PoolFiber.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public void Dispose()
4747
}
4848

4949
/// <summary>
50-
/// <see cref="Subscriptions.BeginSubscription"/>
50+
/// <see cref="ISubscriptionRegistry.BeginSubscription"/>
5151
/// </summary>
5252
/// <returns></returns>
5353
public Unsubscriber BeginSubscription()
@@ -56,7 +56,7 @@ public Unsubscriber BeginSubscription()
5656
}
5757

5858
/// <summary>
59-
/// <see cref="ISubscriptionRegistry.NumSubscriptions"/>
59+
/// <see cref="ISubscriptionRegistryViewing.NumSubscriptions"/>
6060
/// </summary>
6161
public int NumSubscriptions
6262
{

src/AsyncFiberWorks/Fibers/StubFiber.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void Dispose()
4141
}
4242

4343
/// <summary>
44-
/// <see cref="Subscriptions.BeginSubscription"/>
44+
/// <see cref="ISubscriptionRegistry.BeginSubscription"/>
4545
/// </summary>
4646
/// <returns></returns>
4747
public Unsubscriber BeginSubscription()
@@ -50,7 +50,7 @@ public Unsubscriber BeginSubscription()
5050
}
5151

5252
/// <summary>
53-
/// <see cref="ISubscriptionRegistry.NumSubscriptions"/>
53+
/// <see cref="ISubscriptionRegistryViewing.NumSubscriptions"/>
5454
/// </summary>
5555
public int NumSubscriptions
5656
{

src/AsyncFiberWorks/Fibers/ThreadFiber.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public void Dispose()
102102
}
103103

104104
/// <summary>
105-
/// <see cref="Subscriptions.BeginSubscription"/>
105+
/// <see cref="ISubscriptionRegistry.BeginSubscription"/>
106106
/// </summary>
107107
/// <returns></returns>
108108
public Unsubscriber BeginSubscription()
@@ -111,7 +111,7 @@ public Unsubscriber BeginSubscription()
111111
}
112112

113113
/// <summary>
114-
/// <see cref="ISubscriptionRegistry.NumSubscriptions"/>
114+
/// <see cref="ISubscriptionRegistryViewing.NumSubscriptions"/>
115115
/// </summary>
116116
public int NumSubscriptions
117117
{

src/WpfExample/DispatcherFiber.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public void Stop()
9090
}
9191

9292
/// <summary>
93-
/// <see cref="Subscriptions.BeginSubscription"/>
93+
/// <see cref="ISubscriptionRegistry.BeginSubscription"/>
9494
/// </summary>
9595
/// <returns></returns>
9696
public Unsubscriber BeginSubscription()
@@ -99,7 +99,7 @@ public Unsubscriber BeginSubscription()
9999
}
100100

101101
/// <summary>
102-
/// <see cref="ISubscriptionRegistry.NumSubscriptions"/>
102+
/// <see cref="ISubscriptionRegistryViewing.NumSubscriptions"/>
103103
/// </summary>
104104
public int NumSubscriptions
105105
{

src/WpfExample/FormFiber.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void Stop()
3939
}
4040

4141
/// <summary>
42-
/// <see cref="Subscriptions.BeginSubscription"/>
42+
/// <see cref="ISubscriptionRegistry.BeginSubscription"/>
4343
/// </summary>
4444
/// <returns></returns>
4545
public Unsubscriber BeginSubscription()
@@ -48,7 +48,7 @@ public Unsubscriber BeginSubscription()
4848
}
4949

5050
/// <summary>
51-
/// <see cref="ISubscriptionRegistry.NumSubscriptions"/>
51+
/// <see cref="ISubscriptionRegistryViewing.NumSubscriptions"/>
5252
/// </summary>
5353
public int NumSubscriptions
5454
{

0 commit comments

Comments
 (0)