package rpc

import (
	
)

// NotifyAcks notifies engine about received acknowledgements.
func ( *Engine) ( []int64) {
	.mux.Lock()
	defer .mux.Unlock()

	for ,  := range  {
		,  := .ack[]
		if ! {
			.log.Debug("Acknowledge callback not set", zap.Int64("msg_id", ))
			continue
		}

		close()
		delete(.ack, )
	}
}

func ( *Engine) ( int64) chan struct{} {
	.mux.Lock()
	defer .mux.Unlock()

	 := .log.With(zap.Int64("ack_id", ))
	if ,  := .ack[];  {
		.Warn("Ack already registered")
		return 
	}

	.Debug("Waiting for acknowledge")
	 := make(chan struct{})
	.ack[] = 
	return 
}

func ( *Engine) ( int64) {
	.mux.Lock()
	defer .mux.Unlock()

	delete(.ack, )
}