Skip to content

Commit 13f4916

Browse files
authored
Merge pull request #1 from Psykar/fix-recursive-rlock
Fix recursive rlock
2 parents a1b32ef + 53e1109 commit 13f4916

9 files changed

+15
-8
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ go get github.com/beeker1121/goque
2626
Import to your project:
2727

2828
```go
29-
import "github.com/beeker1121/goque"
29+
import "github.com/beeker1121/goque/v2"
3030
```
3131

3232
## Usage

example_object_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package goque_test
33
import (
44
"fmt"
55

6-
"github.com/beeker1121/goque"
6+
"github.com/beeker1121/goque/v2"
77
)
88

99
// ExampleObject demonstrates enqueuing a struct object.

example_prefix_queue_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package goque_test
33
import (
44
"fmt"
55

6-
"github.com/beeker1121/goque"
6+
"github.com/beeker1121/goque/v2"
77
)
88

99
// ExamplePrefixQueue demonstrates the implementation of a Goque queue.

example_priority_queue_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package goque_test
33
import (
44
"fmt"
55

6-
"github.com/beeker1121/goque"
6+
"github.com/beeker1121/goque/v2"
77
)
88

99
// ExamplePriorityQueue demonstrates the implementation of a Goque queue.

example_queue_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package goque_test
33
import (
44
"fmt"
55

6-
"github.com/beeker1121/goque"
6+
"github.com/beeker1121/goque/v2"
77
)
88

99
// ExampleQueue demonstrates the implementation of a Goque queue.

example_stack_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package goque_test
33
import (
44
"fmt"
55

6-
"github.com/beeker1121/goque"
6+
"github.com/beeker1121/goque/v2"
77
)
88

99
// ExampleStack demonstrates the implementation of a Goque stack.

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module github.com/beeker1121/goque
1+
module github.com/beeker1121/goque/v2
22

33
go 1.13
44

priority_queue.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ func (pq *PriorityQueue) PeekByOffset(offset uint64) (*PriorityItem, error) {
282282
}
283283

284284
// Check if queue is empty.
285-
if pq.Length() == 0 {
285+
if pq.length() == 0 {
286286
return nil, ErrEmpty
287287
}
288288

@@ -382,6 +382,11 @@ func (pq *PriorityQueue) Length() uint64 {
382382
pq.RLock()
383383
defer pq.RUnlock()
384384

385+
return pq.length()
386+
}
387+
388+
// not goroutine safe - assumes lock already exists
389+
func (pq *PriorityQueue) length() uint64 {
385390
var length uint64
386391
for _, v := range pq.levels {
387392
length += v.length()

priority_queue_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package goque
22

33
import (
44
"fmt"
5+
"io/ioutil"
56
"math"
67
"os"
8+
"reflect"
79
"testing"
810
"time"
911
)

0 commit comments

Comments
 (0)