@@ -120,9 +120,8 @@ type dbosContext struct {
120120 // Wait group for workflow goroutines
121121 workflowsWg * sync.WaitGroup
122122
123- // Workflow registry
124- workflowRegistry map [string ]workflowRegistryEntry
125- workflowRegMutex * sync.RWMutex
123+ // Workflow registry - read-mostly sync.Map since registration happens only before launch
124+ workflowRegistry sync.Map // map[string]workflowRegistryEntry
126125 workflowCustomNametoFQN sync.Map // Maps fully qualified workflow names to custom names. Usefor when client enqueues a workflow by name because registry is indexed by FQN.
127126
128127 // Workflow scheduler
@@ -164,7 +163,6 @@ func WithValue(ctx DBOSContext, key, val any) DBOSContext {
164163 systemDB : dbosCtx .systemDB ,
165164 workflowsWg : dbosCtx .workflowsWg ,
166165 workflowRegistry : dbosCtx .workflowRegistry ,
167- workflowRegMutex : dbosCtx .workflowRegMutex ,
168166 applicationVersion : dbosCtx .applicationVersion ,
169167 executorID : dbosCtx .executorID ,
170168 applicationID : dbosCtx .applicationID ,
@@ -187,7 +185,6 @@ func WithoutCancel(ctx DBOSContext) DBOSContext {
187185 systemDB : dbosCtx .systemDB ,
188186 workflowsWg : dbosCtx .workflowsWg ,
189187 workflowRegistry : dbosCtx .workflowRegistry ,
190- workflowRegMutex : dbosCtx .workflowRegMutex ,
191188 applicationVersion : dbosCtx .applicationVersion ,
192189 executorID : dbosCtx .executorID ,
193190 applicationID : dbosCtx .applicationID ,
@@ -211,7 +208,6 @@ func WithTimeout(ctx DBOSContext, timeout time.Duration) (DBOSContext, context.C
211208 systemDB : dbosCtx .systemDB ,
212209 workflowsWg : dbosCtx .workflowsWg ,
213210 workflowRegistry : dbosCtx .workflowRegistry ,
214- workflowRegMutex : dbosCtx .workflowRegMutex ,
215211 applicationVersion : dbosCtx .applicationVersion ,
216212 executorID : dbosCtx .executorID ,
217213 applicationID : dbosCtx .applicationID ,
@@ -262,11 +258,9 @@ func (c *dbosContext) GetApplicationID() string {
262258func NewDBOSContext (inputConfig Config ) (DBOSContext , error ) {
263259 ctx , cancelFunc := context .WithCancelCause (context .Background ())
264260 initExecutor := & dbosContext {
265- workflowsWg : & sync.WaitGroup {},
266- ctx : ctx ,
267- ctxCancelFunc : cancelFunc ,
268- workflowRegistry : make (map [string ]workflowRegistryEntry ),
269- workflowRegMutex : & sync.RWMutex {},
261+ workflowsWg : & sync.WaitGroup {},
262+ ctx : ctx ,
263+ ctxCancelFunc : cancelFunc ,
270264 }
271265
272266 // Load and process the configuration
0 commit comments