sh를 통으로 atomic하게 교체

This commit is contained in:
2023-08-16 21:44:19 +09:00
parent c7f073c779
commit 42b4ade782
4 changed files with 56 additions and 42 deletions

View File

@ -285,11 +285,9 @@ func (mg *Maingate) watchServiceCollection(parentctx context.Context, serveMux *
logger.Error("service cannot be prepared :", data.Service, err)
} else {
// 내가 임시로 가지고 있던 서비스일 수 있다.
already := mg.service().Id == data.Service.Id
logger.Println("service is on the board! :", data.Service)
atomic.StorePointer(&mg.serviceptr, unsafe.Pointer(data.Service))
if !already {
serveMux.Handle(gocommon.MakeHttpHandlerPattern(prefix, data.Service.ServiceCode, "/"), mg.service())
if mg.service().Id == data.Service.Id {
logger.Println("service is on the board! :", data.Service)
atomic.StorePointer(&mg.serviceptr, unsafe.Pointer(data.Service))
}
}