X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Ftransaction.go;h=9adaeca6067090c1cfeb99fef9f11263fa9cb5e1;hb=31797b49985822f1d402501f16ab2794838bebba;hp=b0da077d4a56cf99179ad24e7578e9ca2288807f;hpb=9340072742db74b6f93ca43d73841c388dd80e02;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/transaction.go b/pkg/control/transaction.go index b0da077..9adaeca 100644 --- a/pkg/control/transaction.go +++ b/pkg/control/transaction.go @@ -36,7 +36,7 @@ type TransactionXappKey struct { } func (key *TransactionXappKey) String() string { - return key.RmrEndpoint.String() + "/" + key.Xid + return "transkey(" + key.RmrEndpoint.String() + "/" + key.Xid + ")" } //----------------------------------------------------------------------------- @@ -47,7 +47,6 @@ type Transaction struct { tracker *Tracker //tracker instance Subs *Subscription //related subscription RmrEndpoint RmrEndpoint //xapp endpoint - Mtype int //type of initiating message Xid string //xapp xid in req Meid *xapp.RMRMeid //meid transaction related SubReqMsg *e2ap.E2APSubscriptionRequest //SubReq TODO: maybe own transactions per type @@ -56,19 +55,24 @@ type Transaction struct { SubDelReqMsg *e2ap.E2APSubscriptionDeleteRequest //SubDelReq TODO: maybe own transactions per type SubDelRespMsg *e2ap.E2APSubscriptionDeleteResponse //SubDelResp TODO: maybe own transactions per type SubDelFailMsg *e2ap.E2APSubscriptionDeleteFailure //SubDelFail TODO: maybe own transactions per type - Payload *packer.PackedData //Encoded message to be send. Optimized + Mtype int //Encoded message type to be send + Payload *packer.PackedData //Encoded message to be send RespReceived bool ForwardRespToXapp bool } -func (t *Transaction) String() string { - t.mutex.Lock() - defer t.mutex.Unlock() +func (t *Transaction) StringImpl() string { var subId string = "?" if t.Subs != nil { subId = strconv.FormatUint(uint64(t.Subs.Seq), 10) } - return subId + "/" + t.RmrEndpoint.String() + "/" + t.Xid + return "trans(" + t.RmrEndpoint.String() + "/" + t.Xid + "/" + t.Meid.RanName + "/" + subId + ")" +} + +func (t *Transaction) String() string { + t.mutex.Lock() + defer t.mutex.Unlock() + return t.StringImpl() } func (t *Transaction) GetXid() string { @@ -115,16 +119,18 @@ func (t *Transaction) RetryTransaction() { } func (t *Transaction) Release() { - xapp.Logger.Info("Transaction: Releasing %s", t) t.mutex.Lock() - defer t.mutex.Unlock() - if t.Subs != nil { - t.Subs.UnSetTransaction(t) - } - if t.tracker != nil { - xappkey := TransactionXappKey{t.RmrEndpoint, t.Xid} - t.tracker.UnTrackTransaction(xappkey) - } + subs := t.Subs + tracker := t.tracker + xappkey := TransactionXappKey{t.RmrEndpoint, t.Xid} t.Subs = nil t.tracker = nil + t.mutex.Unlock() + + if subs != nil { + subs.UnSetTransaction(t) + } + if tracker != nil { + tracker.UnTrackTransaction(xappkey) + } }