66 "fmt"
77 "net/http"
88 "slices"
9- "sync"
109 "time"
1110
1211 "github.com/YaCodeDev/GoYaCodeDevUtils/yaerrors"
@@ -91,18 +90,16 @@ func (j MessageJob) cancel() {
9190// messageHeap is a thread-safe priority queue for MessageJob.
9291type messageHeap struct {
9392 jobs []MessageJob
94- mu * sync.Mutex
9593}
9694
9795// newMessageHeap creates a new instance of messageHeap.
9896//
9997// Example usage:
10098//
10199// heap := newMessageHeap()
102- func newMessageHeap (mu * sync. Mutex ) messageHeap {
100+ func newMessageHeap () messageHeap {
103101 return messageHeap {
104102 jobs : make ([]MessageJob , 0 , PriorityQueueAllocSize ),
105- mu : mu ,
106103 }
107104}
108105
@@ -144,12 +141,8 @@ func (h *messageHeap) sort() {
144141//
145142// heap.Push(job)
146143func (h * messageHeap ) Push (job MessageJob ) {
147- h .mu .Lock ()
148-
149144 h .jobs = append (h .jobs , job )
150145 h .sort ()
151-
152- h .mu .Unlock ()
153146}
154147
155148// Len returns the number of jobs in the heap.
@@ -158,9 +151,6 @@ func (h *messageHeap) Push(job MessageJob) {
158151//
159152// length := heap.Len()
160153func (h * messageHeap ) Len () int {
161- h .mu .Lock ()
162- defer h .mu .Unlock ()
163-
164154 return len (h .jobs )
165155}
166156
@@ -178,14 +168,10 @@ func (h *messageHeap) Pop() (MessageJob, bool) {
178168 return MessageJob {}, false
179169 }
180170
181- h .mu .Lock ()
182-
183171 last := len (h .jobs ) - 1
184172 job := h .jobs [last ]
185173 h .jobs = h .jobs [:last ]
186174
187- h .mu .Unlock ()
188-
189175 return job , true
190176}
191177
@@ -203,8 +189,6 @@ func (h *messageHeap) Pop() (MessageJob, bool) {
203189func (h * messageHeap ) Delete (id uint64 ) bool {
204190 var canceledJob * MessageJob
205191
206- h .mu .Lock ()
207-
208192 for i , job := range h .jobs {
209193 if job .ID == id {
210194 h .jobs = append (h .jobs [:i ], h .jobs [i + 1 :]... )
@@ -214,8 +198,6 @@ func (h *messageHeap) Delete(id uint64) bool {
214198 }
215199 }
216200
217- h .mu .Unlock ()
218-
219201 if canceledJob != nil {
220202 canceledJob .cancel ()
221203
@@ -244,8 +226,6 @@ func (h *messageHeap) DeleteFunc(deleteFunc func(MessageJob) bool) []uint64 {
244226 canceledJobs []MessageJob
245227 )
246228
247- h .mu .Lock ()
248-
249229 newJobs := make ([]MessageJob , 0 , len (h .jobs ))
250230
251231 for _ , job := range h .jobs {
@@ -261,8 +241,6 @@ func (h *messageHeap) DeleteFunc(deleteFunc func(MessageJob) bool) []uint64 {
261241
262242 h .jobs = newJobs
263243
264- h .mu .Unlock ()
265-
266244 for _ , job := range canceledJobs {
267245 job .cancel ()
268246 }
0 commit comments