Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
go-libp2p
Commits
3a57e708
Commit
3a57e708
authored
Aug 07, 2017
by
Lars Gierth
Committed by
GitHub
Aug 07, 2017
Browse files
Merge pull request #211 from libp2p/fix/notify-tests
tests: update test cases to act like go-peerstream 1.7.0
parents
4ff80c19
112866c3
Changes
2
Hide whitespace changes
Inline
Side-by-side
p2p/net/mock/mock_notif_test.go
View file @
3a57e708
...
...
@@ -11,8 +11,9 @@ import (
)
func
TestNotifications
(
t
*
testing
.
T
)
{
const
swarmSize
=
5
mn
,
err
:=
FullMeshLinked
(
context
.
Background
(),
5
)
mn
,
err
:=
FullMeshLinked
(
context
.
Background
(),
swarmSize
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -23,7 +24,7 @@ func TestNotifications(t *testing.T) {
nets
:=
mn
.
Nets
()
notifiees
:=
make
([]
*
netNotifiee
,
len
(
nets
))
for
i
,
pn
:=
range
nets
{
n
:=
newNetNotifiee
()
n
:=
newNetNotifiee
(
swarmSize
)
pn
.
Notify
(
n
)
notifiees
[
i
]
=
n
}
...
...
@@ -193,14 +194,14 @@ type netNotifiee struct {
closedStream
chan
inet
.
Stream
}
func
newNetNotifiee
()
*
netNotifiee
{
func
newNetNotifiee
(
buffer
int
)
*
netNotifiee
{
return
&
netNotifiee
{
listen
:
make
(
chan
ma
.
Multiaddr
),
listenClose
:
make
(
chan
ma
.
Multiaddr
),
connected
:
make
(
chan
inet
.
Conn
),
disconnected
:
make
(
chan
inet
.
Conn
),
openedStream
:
make
(
chan
inet
.
Stream
),
closedStream
:
make
(
chan
inet
.
Stream
),
listen
:
make
(
chan
ma
.
Multiaddr
,
buffer
),
listenClose
:
make
(
chan
ma
.
Multiaddr
,
buffer
),
connected
:
make
(
chan
inet
.
Conn
,
buffer
),
disconnected
:
make
(
chan
inet
.
Conn
,
buffer
),
openedStream
:
make
(
chan
inet
.
Stream
,
buffer
),
closedStream
:
make
(
chan
inet
.
Stream
,
buffer
),
}
}
...
...
p2p/net/mock/mock_peernet.go
View file @
3a57e708
...
...
@@ -31,7 +31,7 @@ type peernet struct {
streamHandler
inet
.
StreamHandler
connHandler
inet
.
ConnHandler
notifmu
sync
.
RW
Mutex
notifmu
sync
.
Mutex
notifs
map
[
inet
.
Notifiee
]
struct
{}
proc
goprocess
.
Process
...
...
@@ -381,11 +381,17 @@ func (pn *peernet) StopNotify(f inet.Notifiee) {
// notifyAll runs the notification function on all Notifiees
func
(
pn
*
peernet
)
notifyAll
(
notification
func
(
f
inet
.
Notifiee
))
{
pn
.
notifmu
.
RLock
()
pn
.
notifmu
.
Lock
()
var
wg
sync
.
WaitGroup
for
n
:=
range
pn
.
notifs
{
// make sure we dont block
// and they dont block each other.
go
notification
(
n
)
wg
.
Add
(
1
)
go
func
(
n
inet
.
Notifiee
)
{
defer
wg
.
Done
()
notification
(
n
)
}(
n
)
}
pn
.
notifmu
.
RUnlock
()
wg
.
Wait
()
pn
.
notifmu
.
Unlock
()
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment