66using System . Net . Sockets ;
77using System . Threading ;
88using NetMQ . Core . Utils ;
9- #if ! NET35
109using System . Threading . Tasks ;
11- #endif
12- #if NET40
13- using System . ComponentModel ;
14- #endif
1510
1611using Switch = NetMQ . Core . Utils . Switch ;
1712
@@ -21,15 +16,10 @@ namespace NetMQ
2116 /// Enable polling on multiple NetMQSockets
2217 /// </summary>
2318 public sealed class NetMQPoller :
24- #if ! NET35
2519 TaskScheduler ,
26- #endif
27- #if NET40
28- ISynchronizeInvoke ,
29- #endif
30- #pragma warning disable 618
20+ #pragma warning disable 618 // Type or member is obsolete
3121 INetMQPoller , ISocketPollableCollection , IEnumerable , IDisposable
32- #pragma warning restore 618
22+ #pragma warning restore 618 // Type or member is obsolete
3323 {
3424 private readonly List < NetMQSocket > m_sockets = new List < NetMQSocket > ( ) ;
3525 private readonly List < NetMQTimer > m_timers = new List < NetMQTimer > ( ) ;
@@ -39,18 +29,13 @@ public sealed class NetMQPoller :
3929 private readonly StopSignaler m_stopSignaler = new StopSignaler ( ) ;
4030
4131 private NetMQSelector . Item [ ] ? m_pollSet ;
42- private NetMQSocket [ ] ? m_pollact ;
32+ private NetMQSocket [ ] ? m_pollact ;
4333
44- private volatile bool m_isPollSetDirty = true ;
34+ private volatile bool m_isPollSetDirty = true ;
4535 private int m_disposeState = ( int ) DisposeState . Undisposed ;
4636
47- #if NET35
48- private Thread m_pollerThread ;
49- #endif
50-
5137 #region Scheduling
5238
53- #if ! NET35
5439 private readonly NetMQQueue < Task > m_tasksQueue = new NetMQQueue < Task > ( ) ;
5540 private readonly ThreadLocal < bool > m_isSchedulerThread = new ThreadLocal < bool > ( ( ) => false ) ;
5641
@@ -130,12 +115,6 @@ public void Run(Action action)
130115 else
131116 new Task ( action ) . Start ( this ) ;
132117 }
133- #else
134- private void Run ( Action action )
135- {
136- action ( ) ;
137- }
138- #endif
139118
140119 #endregion
141120
@@ -146,8 +125,6 @@ public NetMQPoller()
146125 {
147126 m_sockets . Add ( ( ( ISocketPollable ) m_stopSignaler ) . Socket ) ;
148127
149- #if ! NET35
150-
151128 m_tasksQueue . ReceiveReady += delegate
152129 {
153130 Debug . Assert ( m_disposeState != ( int ) DisposeState . Disposed ) ;
@@ -159,7 +136,6 @@ public NetMQPoller()
159136 } ;
160137
161138 m_sockets . Add ( ( ( ISocketPollable ) m_tasksQueue ) . Socket ) ;
162- #endif
163139 }
164140
165141 /// <summary>
@@ -172,11 +148,7 @@ public NetMQPoller()
172148 /// </summary>
173149 public bool IsDisposed => m_disposeState == ( int ) DisposeState . Disposed ;
174150
175- #if NET35
176- private bool IsPollerThread => ReferenceEquals ( m_pollerThread , Thread . CurrentThread ) ;
177- #else
178151 private bool IsPollerThread => m_isSchedulerThread . Value ;
179- #endif
180152
181153 #region Add / Remove
182154
@@ -353,7 +325,6 @@ public void Remove(Socket socket)
353325 #endregion
354326
355327 #region Contains
356- #if ! NET35
357328
358329 /// <summary>
359330 /// Check if poller contains the socket asynchronously.
@@ -404,7 +375,7 @@ public Task<bool> ContainsAsync(Socket socket)
404375 Run ( ( ) => tcs . SetResult ( m_pollinSockets . ContainsKey ( socket ) ) ) ;
405376 return tcs . Task ;
406377 }
407- #endif
378+
408379 #endregion
409380
410381 #region Start / Stop
@@ -451,31 +422,6 @@ public void RunAsync(string threadName, bool isBackgroundThread)
451422 m_switch . WaitForOn ( ) ;
452423 }
453424
454- #if NET35
455- /// <summary>
456- /// Runs the poller on the caller's thread. Only returns when <see cref="Stop"/> or <see cref="StopAsync"/> are called from another thread.
457- /// </summary>
458- public void Run ( )
459- {
460- CheckDisposed ( ) ;
461- if ( IsRunning )
462- throw new InvalidOperationException ( "NetMQPoller is already running" ) ;
463-
464- m_pollerThread = Thread . CurrentThread ;
465- m_stopSignaler . Reset ( ) ;
466- m_switch . SwitchOn ( ) ;
467-
468- try
469- {
470- RunPoller ( ) ;
471- }
472- finally
473- {
474- m_pollerThread = null ;
475- m_switch . SwitchOff ( ) ;
476- }
477- }
478- #else
479425 /// <summary>
480426 /// Runs the poller on the caller's thread. Only returns when <see cref="Stop"/> or <see cref="StopAsync"/> are called from another thread.
481427 /// </summary>
@@ -514,9 +460,7 @@ public void Run(SynchronizationContext syncContext)
514460 SynchronizationContext . SetSynchronizationContext ( oldSynchronisationContext ) ;
515461 m_switch . SwitchOff ( ) ;
516462 }
517-
518463 }
519- #endif
520464
521465 /// <summary>
522466 /// Runs the poller on the caller's thread. Only returns when <see cref="Stop"/> or <see cref="StopAsync"/> are called from another thread.
@@ -693,9 +637,7 @@ private void OnSocketEventsChanged(object? sender, NetMQSocketEventArgs e)
693637
694638 private void RebuildPollset ( )
695639 {
696- #if ! NET35
697640 Debug . Assert ( m_isSchedulerThread . Value ) ;
698- #endif
699641
700642 // Recreate the m_pollSet and m_pollact arrays.
701643 m_pollSet = new NetMQSelector . Item [ m_sockets . Count + m_pollinSockets . Count ] ;
@@ -777,10 +719,9 @@ public void Dispose()
777719
778720 m_sockets . Remove ( ( ( ISocketPollable ) m_stopSignaler ) . Socket ) ;
779721 m_stopSignaler . Dispose ( ) ;
780- #if ! NET35
722+
781723 m_sockets . Remove ( ( ( ISocketPollable ) m_tasksQueue ) . Socket ) ;
782724 m_tasksQueue . Dispose ( ) ;
783- #endif
784725
785726 foreach ( var socket in m_sockets )
786727 {
0 commit comments