@@ -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,10 +251,11 @@ 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
+ localUi := e .ui
257
+ localAnalytics := e .analytics
258
+
254
259
// prepare configuration
255
260
if config == nil {
256
261
config = e .config .Clone ()
@@ -259,9 +264,10 @@ func (e *EngineImpl) InvokeWithInputAndConfig(
259
264
// prepare networkAccess
260
265
networkAccess := e .networkAccess .Clone ()
261
266
networkAccess .SetConfiguration (config )
267
+ e .mu .Unlock ()
262
268
263
269
// create a context object for the invocation
264
- context := NewInvocationContext (id , config , e , networkAccess , zlogger , e . analytics , e . ui )
270
+ context := NewInvocationContext (id , config , e , networkAccess , zlogger , localAnalytics , localUi )
265
271
266
272
// invoke workflow through its callback
267
273
zlogger .Printf ("Workflow Start" )
0 commit comments