@@ -145,30 +145,38 @@ func (s *Manager) SubServerStatus(_ context.Context,
145
145
146
146
// RegisterSubServer will create a new sub-server entry for the Manager to
147
147
// keep track of.
148
- func (s * Manager ) RegisterSubServer (name string , opts ... SubServerOption ) {
148
+ func (s * Manager ) RegisterSubServer (name string ,
149
+ opts ... SubServerOption ) error {
150
+
149
151
s .mu .RLock ()
150
152
defer s .mu .RUnlock ()
151
153
152
- s .registerSubServerUnsafe (name , true , opts ... )
154
+ return s .registerSubServerUnsafe (name , true , opts ... )
153
155
}
154
156
155
157
// RegisterAndEnableSubServer will create a new sub-server entry for the
156
158
// Manager to keep track of and will set it as enabled.
157
159
func (s * Manager ) RegisterAndEnableSubServer (name string ,
158
- opts ... SubServerOption ) {
160
+ opts ... SubServerOption ) error {
159
161
160
162
s .mu .RLock ()
161
163
defer s .mu .RUnlock ()
162
164
163
- s .registerSubServerUnsafe (name , false , opts ... )
165
+ return s .registerSubServerUnsafe (name , false , opts ... )
164
166
}
165
167
166
168
func (s * Manager ) registerSubServerUnsafe (name string , disabled bool ,
167
- opts ... SubServerOption ) {
169
+ opts ... SubServerOption ) error {
170
+
171
+ _ , ok := s .subServers [name ]
172
+ if ok {
173
+ return fmt .Errorf ("a subserver with name %s has already " +
174
+ "been registered with the status manager" , name )
175
+ }
168
176
169
- ss : = newSubServer (disabled , opts ... )
177
+ s . subServers [ name ] = newSubServer (disabled , opts ... )
170
178
171
- s . subServers [ name ] = ss
179
+ return nil
172
180
}
173
181
174
182
// SetCustomStatus updates the custom status of the given sub-server to the
0 commit comments