File tree Expand file tree Collapse file tree 1 file changed +17
-14
lines changed
src/JavaScriptEngineSwitcher.ChakraCore Expand file tree Collapse file tree 1 file changed +17
-14
lines changed Original file line number Diff line number Diff line change @@ -102,6 +102,7 @@ private void StartThread()
102
102
task = _taskQueue . Dequeue ( ) ;
103
103
if ( task == null )
104
104
{
105
+ _taskQueue . Clear ( ) ;
105
106
return ;
106
107
}
107
108
}
@@ -177,6 +178,11 @@ public T Invoke<T>(Func<T> func)
177
178
{
178
179
VerifyNotDisposed ( ) ;
179
180
181
+ if ( func == null )
182
+ {
183
+ throw new ArgumentNullException ( "func" ) ;
184
+ }
185
+
180
186
return ( T ) InnnerInvoke ( ( ) => func ( ) ) ;
181
187
}
182
188
@@ -189,6 +195,11 @@ public void Invoke(Action action)
189
195
{
190
196
VerifyNotDisposed ( ) ;
191
197
198
+ if ( action == null )
199
+ {
200
+ throw new ArgumentNullException ( "action" ) ;
201
+ }
202
+
192
203
InnnerInvoke ( ( ) =>
193
204
{
194
205
action ( ) ;
@@ -217,25 +228,17 @@ private void Dispose(bool disposing)
217
228
if ( _disposedFlag . Set ( ) )
218
229
{
219
230
EnqueueTask ( null ) ;
220
- _thread . Join ( ) ;
221
231
222
- if ( _waitHandle != null )
232
+ if ( _thread != null )
223
233
{
224
- _waitHandle . Dispose ( ) ;
225
- _waitHandle = null ;
234
+ _thread . Join ( ) ;
235
+ _thread = null ;
226
236
}
227
237
228
- if ( disposing )
238
+ if ( _waitHandle != null )
229
239
{
230
- lock ( _taskQueueSynchronizer )
231
- {
232
- if ( _taskQueue != null )
233
- {
234
- _taskQueue . Clear ( ) ;
235
- }
236
- }
237
-
238
- _thread = null ;
240
+ _waitHandle . Dispose ( ) ;
241
+ _waitHandle = null ;
239
242
}
240
243
}
241
244
}
You can’t perform that action at this time.
0 commit comments