@@ -41,6 +41,8 @@ func (e *EngineImpl) GetLogger() *zerolog.Logger {
41
41
}
42
42
43
43
func (e * EngineImpl ) SetLogger (logger * zerolog.Logger ) {
44
+ e .mu .Lock ()
45
+ defer e .mu .Unlock ()
44
46
e .logger = logger
45
47
46
48
if e .networkAccess != nil {
@@ -49,6 +51,8 @@ func (e *EngineImpl) SetLogger(logger *zerolog.Logger) {
49
51
}
50
52
51
53
func (e * EngineImpl ) SetConfiguration (config configuration.Configuration ) {
54
+ e .mu .Lock ()
55
+ defer e .mu .Unlock ()
52
56
e .config = config
53
57
54
58
if e .networkAccess != nil {
@@ -247,21 +251,25 @@ func (e *EngineImpl) InvokeWithInputAndConfig(
247
251
248
252
// prepare logger
249
253
prefix := fmt .Sprintf ("%s:%d" , id .Host , e .invocationCounter )
250
- e .mu .Unlock ()
251
-
252
254
zlogger := e .logger .With ().Str ("ext" , prefix ).Logger ()
253
255
256
+ localConfig := e .config
257
+ localNetwork := e .networkAccess
258
+ localUi := e .ui
259
+ localAnalytics := e .analytics
260
+
254
261
// prepare configuration
255
262
if config == nil {
256
- config = e . config .Clone ()
263
+ config = localConfig .Clone ()
257
264
}
258
265
259
266
// prepare networkAccess
260
- networkAccess := e . networkAccess .Clone ()
267
+ networkAccess := localNetwork .Clone ()
261
268
networkAccess .SetConfiguration (config )
269
+ e .mu .Unlock ()
262
270
263
271
// create a context object for the invocation
264
- context := NewInvocationContext (id , config , e , networkAccess , zlogger , e . analytics , e . ui )
272
+ context := NewInvocationContext (id , config , e , networkAccess , zlogger , localAnalytics , localUi )
265
273
266
274
// invoke workflow through its callback
267
275
zlogger .Printf ("Workflow Start" )
0 commit comments