@@ -16,8 +16,6 @@ import (
16
16
// or due of timeout. The Timeout is configurable, and it is calculated client side.
17
17
type unConfirmed struct {
18
18
messages map [int64 ]* ConfirmationStatus
19
- tmp []* ConfirmationStatus
20
- tmpMutex sync.Mutex
21
19
mutexMessageMap sync.RWMutex
22
20
}
23
21
@@ -27,8 +25,6 @@ func newUnConfirmed() *unConfirmed {
27
25
28
26
r := & unConfirmed {
29
27
messages : make (map [int64 ]* ConfirmationStatus , DefaultUnconfirmedSize ),
30
- tmp : []* ConfirmationStatus {},
31
- tmpMutex : sync.Mutex {},
32
28
mutexMessageMap : sync.RWMutex {},
33
29
}
34
30
@@ -37,15 +33,15 @@ func newUnConfirmed() *unConfirmed {
37
33
38
34
func (u * unConfirmed ) addFromSequence (message * messageSequence , source * message.StreamMessage , producerID uint8 ) {
39
35
40
- u .tmpMutex .Lock ()
41
- u .tmp = append ( u . tmp , & ConfirmationStatus {
36
+ u .mutexMessageMap .Lock ()
37
+ u .messages [ message . publishingId ] = & ConfirmationStatus {
42
38
inserted : time .Now (),
43
39
message : * source ,
44
40
producerID : producerID ,
45
41
publishingId : message .publishingId ,
46
42
confirmed : false ,
47
- })
48
- u .tmpMutex .Unlock ()
43
+ }
44
+ u .mutexMessageMap .Unlock ()
49
45
}
50
46
51
47
func (u * unConfirmed ) link (from int64 , to int64 ) {
@@ -61,7 +57,6 @@ func (u *unConfirmed) extractWithConfirms(ids []int64) []*ConfirmationStatus {
61
57
u .mutexMessageMap .Lock ()
62
58
defer u .mutexMessageMap .Unlock ()
63
59
var res []* ConfirmationStatus
64
- u .fromTmpToMap () ///
65
60
66
61
for _ , v := range ids {
67
62
m := u .extract (v , 0 , true )
@@ -76,19 +71,9 @@ func (u *unConfirmed) extractWithConfirms(ids []int64) []*ConfirmationStatus {
76
71
77
72
}
78
73
79
- func (u * unConfirmed ) fromTmpToMap () {
80
- u .tmpMutex .Lock ()
81
- defer u .tmpMutex .Unlock ()
82
- for i := range u .tmp {
83
- u .messages [u .tmp [i ].publishingId ] = u .tmp [i ]
84
- }
85
- u .tmp = u .tmp [:0 ]
86
- }
87
-
88
74
func (u * unConfirmed ) extractWithError (id int64 , errorCode uint16 ) * ConfirmationStatus {
89
75
u .mutexMessageMap .Lock ()
90
76
defer u .mutexMessageMap .Unlock ()
91
- u .fromTmpToMap ()
92
77
return u .extract (id , errorCode , false )
93
78
}
94
79
@@ -118,7 +103,6 @@ func (u *unConfirmed) updateStatus(rootMessage *ConfirmationStatus, errorCode ui
118
103
func (u * unConfirmed ) extractWithTimeOut (timeout time.Duration ) []* ConfirmationStatus {
119
104
u .mutexMessageMap .Lock ()
120
105
defer u .mutexMessageMap .Unlock ()
121
- u .fromTmpToMap ()
122
106
var res []* ConfirmationStatus
123
107
for _ , v := range u .messages {
124
108
if time .Since (v .inserted ) > timeout {
@@ -132,13 +116,11 @@ func (u *unConfirmed) extractWithTimeOut(timeout time.Duration) []*ConfirmationS
132
116
func (u * unConfirmed ) size () int {
133
117
u .mutexMessageMap .Lock ()
134
118
defer u .mutexMessageMap .Unlock ()
135
- u .fromTmpToMap ()
136
119
return len (u .messages )
137
120
}
138
121
139
122
func (u * unConfirmed ) getAll () map [int64 ]* ConfirmationStatus {
140
123
u .mutexMessageMap .Lock ()
141
124
defer u .mutexMessageMap .Unlock ()
142
- u .fromTmpToMap ()
143
125
return u .messages
144
126
}
0 commit comments