Defer в main функции gRPC сервиса

Не отрабатывает функция defer в главном потоке, в котором инициализирован gRPC сервис:

func main() {
     ...

     work, err := work.InitWork()
     if err != nil {
          panic(err)
     }

     work.Start()
     defer work.Finish()

     ...

    listener, err := net.Listen("tcp", addr)
    if err != nil {
        panic(err)
    }

    pb.RegisterServer(grpcServer, srv)
    log.Print("Server is starting %s ... ", addr)

    if err := grpcServer.Serve(listener); err != nil {
        panic(err)
    }
}

Код метода work.Finish():

func (w *Work) Finish() {
    log.Print("Stopping ...")

    w.wg.Wait()
    log.Print("Stopped")
}

Когда происходит остановка главного потока в логах не наблюдаю сообщений об остановке работ.


Ответы (0 шт):