changed embedded mutex to private field (#217)
This commit is contained in:
		
							
								
								
									
										20
									
								
								service.go
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								service.go
									
									
									
									
									
								
							| @@ -96,9 +96,9 @@ func RegisterHandler(s server.Server, h interface{}, opts ...server.HandlerOptio | ||||
| } | ||||
|  | ||||
| type service struct { | ||||
| 	done chan struct{} | ||||
| 	opts Options | ||||
| 	sync.RWMutex | ||||
| 	done    chan struct{} | ||||
| 	opts    Options | ||||
| 	mu      sync.RWMutex | ||||
| 	stopped bool | ||||
| } | ||||
|  | ||||
| @@ -321,9 +321,9 @@ func (s *service) Health() bool { | ||||
| func (s *service) Start() error { | ||||
| 	var err error | ||||
|  | ||||
| 	s.RLock() | ||||
| 	s.mu.RLock() | ||||
| 	config := s.opts | ||||
| 	s.RUnlock() | ||||
| 	s.mu.RUnlock() | ||||
|  | ||||
| 	for _, cfg := range s.opts.Configs { | ||||
| 		if cfg.Options().Struct == nil { | ||||
| @@ -380,9 +380,9 @@ func (s *service) Start() error { | ||||
| } | ||||
|  | ||||
| func (s *service) Stop() error { | ||||
| 	s.RLock() | ||||
| 	s.mu.RLock() | ||||
| 	config := s.opts | ||||
| 	s.RUnlock() | ||||
| 	s.mu.RUnlock() | ||||
|  | ||||
| 	if config.Loggers[0].V(logger.InfoLevel) { | ||||
| 		config.Loggers[0].Info(s.opts.Context, fmt.Sprintf("stoppping [service] %s", s.Name())) | ||||
| @@ -457,13 +457,13 @@ func (s *service) Run() error { | ||||
| // notifyShutdown marks the service as stopped and closes the done channel. | ||||
| // It ensures the channel is closed only once, preventing multiple closures. | ||||
| func (s *service) notifyShutdown() { | ||||
| 	s.Lock() | ||||
| 	s.mu.Lock() | ||||
| 	if s.stopped { | ||||
| 		s.Unlock() | ||||
| 		s.mu.Unlock() | ||||
| 		return | ||||
| 	} | ||||
| 	s.stopped = true | ||||
| 	s.Unlock() | ||||
| 	s.mu.Unlock() | ||||
|  | ||||
| 	close(s.done) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user