Skip to content

Commit 1018120

Browse files
committed
In JavaScriptEngineSwitcher.V8 removed unnecessary locks from the V8JsEngine class
1 parent 93c55b5 commit 1018120

File tree

1 file changed

+43
-72
lines changed

1 file changed

+43
-72
lines changed

src/JavaScriptEngineSwitcher.V8/V8JsEngine.cs

Lines changed: 43 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,6 @@ public sealed class V8JsEngine : JsEngineBase
4646
new Regex(@"[ ]{3,5}at (?:[A-Za-z_\$][0-9A-Za-z_\$]* )?" +
4747
@"\(?[^\s*?""<>|][^\t\n\r*?""<>|]*?:(?<lineNumber>\d+):(?<columnNumber>\d+)\)? -> ");
4848

49-
/// <summary>
50-
/// Synchronizer of code execution
51-
/// </summary>
52-
private readonly object _executionSynchronizer = new object();
53-
5449
/// <summary>
5550
/// Gets a name of JS engine
5651
/// </summary>
@@ -224,16 +219,13 @@ protected override object InnerEvaluate(string expression, string documentName)
224219
{
225220
object result;
226221

227-
lock (_executionSynchronizer)
222+
try
228223
{
229-
try
230-
{
231-
result = _jsEngine.Evaluate(documentName, false, expression);
232-
}
233-
catch (OriginalJsException e)
234-
{
235-
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
236-
}
224+
result = _jsEngine.Evaluate(documentName, false, expression);
225+
}
226+
catch (OriginalJsException e)
227+
{
228+
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
237229
}
238230

239231
result = MapToHostType(result);
@@ -260,16 +252,13 @@ protected override void InnerExecute(string code)
260252

261253
protected override void InnerExecute(string code, string documentName)
262254
{
263-
lock (_executionSynchronizer)
255+
try
264256
{
265-
try
266-
{
267-
_jsEngine.Execute(documentName, false, code);
268-
}
269-
catch (OriginalJsException e)
270-
{
271-
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
272-
}
257+
_jsEngine.Execute(documentName, false, code);
258+
}
259+
catch (OriginalJsException e)
260+
{
261+
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
273262
}
274263
}
275264

@@ -287,16 +276,13 @@ protected override object InnerCallFunction(string functionName, params object[]
287276
}
288277
}
289278

290-
lock (_executionSynchronizer)
279+
try
291280
{
292-
try
293-
{
294-
result = _jsEngine.Invoke(functionName, processedArgs);
295-
}
296-
catch (OriginalJsException e)
297-
{
298-
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
299-
}
281+
result = _jsEngine.Invoke(functionName, processedArgs);
282+
}
283+
catch (OriginalJsException e)
284+
{
285+
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
300286
}
301287

302288
result = MapToHostType(result);
@@ -323,16 +309,13 @@ protected override object InnerGetVariableValue(string variableName)
323309
{
324310
object result;
325311

326-
lock (_executionSynchronizer)
312+
try
327313
{
328-
try
329-
{
330-
result = _jsEngine.Script[variableName];
331-
}
332-
catch (OriginalJsException e)
333-
{
334-
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
335-
}
314+
result = _jsEngine.Script[variableName];
315+
}
316+
catch (OriginalJsException e)
317+
{
318+
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
336319
}
337320

338321
result = MapToHostType(result);
@@ -351,16 +334,13 @@ protected override void InnerSetVariableValue(string variableName, object value)
351334
{
352335
object processedValue = MapToClearScriptType(value);
353336

354-
lock (_executionSynchronizer)
337+
try
355338
{
356-
try
357-
{
358-
_jsEngine.Script[variableName] = processedValue;
359-
}
360-
catch (OriginalJsException e)
361-
{
362-
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
363-
}
339+
_jsEngine.Script[variableName] = processedValue;
340+
}
341+
catch (OriginalJsException e)
342+
{
343+
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
364344
}
365345
}
366346

@@ -373,40 +353,31 @@ protected override void InnerEmbedHostObject(string itemName, object value)
373353
{
374354
object processedValue = MapToClearScriptType(value);
375355

376-
lock (_executionSynchronizer)
356+
try
377357
{
378-
try
379-
{
380-
_jsEngine.AddHostObject(itemName, processedValue);
381-
}
382-
catch (OriginalJsException e)
383-
{
384-
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
385-
}
358+
_jsEngine.AddHostObject(itemName, processedValue);
359+
}
360+
catch (OriginalJsException e)
361+
{
362+
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
386363
}
387364
}
388365

389366
protected override void InnerEmbedHostType(string itemName, Type type)
390367
{
391-
lock (_executionSynchronizer)
368+
try
392369
{
393-
try
394-
{
395-
_jsEngine.AddHostType(itemName, type);
396-
}
397-
catch (OriginalJsException e)
398-
{
399-
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
400-
}
370+
_jsEngine.AddHostType(itemName, type);
371+
}
372+
catch (OriginalJsException e)
373+
{
374+
throw ConvertScriptEngineExceptionToJsRuntimeException(e);
401375
}
402376
}
403377

404378
protected override void InnerCollectGarbage()
405379
{
406-
lock (_executionSynchronizer)
407-
{
408-
_jsEngine.CollectGarbage(true);
409-
}
380+
_jsEngine.CollectGarbage(true);
410381
}
411382

412383
#endregion

0 commit comments

Comments
 (0)