mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 05:11:19 -04:00
Simplify Peers.Pop.
This commit is contained in:
parent
17c0d0ff82
commit
3520f4e8b9
1 changed files with 10 additions and 10 deletions
|
@ -62,24 +62,24 @@ func (p *Peers) Collect() (Snowflake, error) {
|
||||||
return connection, nil
|
return connection, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// As part of |SnowflakeCollector| interface.
|
// Pop blocks until an available, valid snowflake appears. Returns nil after End
|
||||||
|
// has been called.
|
||||||
|
//
|
||||||
|
// Part of |SnowflakeCollector| interface.
|
||||||
func (p *Peers) Pop() Snowflake {
|
func (p *Peers) Pop() Snowflake {
|
||||||
// Blocks until an available, valid snowflake appears.
|
for {
|
||||||
var snowflake Snowflake
|
snowflake, ok := <-p.snowflakeChan
|
||||||
var ok bool
|
|
||||||
for snowflake == nil {
|
|
||||||
snowflake, ok = <-p.snowflakeChan
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
conn := snowflake.(*WebRTCPeer)
|
conn := snowflake.(*WebRTCPeer)
|
||||||
if conn.closed {
|
if conn.closed {
|
||||||
snowflake = nil
|
continue
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Set to use the same rate-limited traffic logger to keep consistency.
|
// Set to use the same rate-limited traffic logger to keep consistency.
|
||||||
snowflake.(*WebRTCPeer).BytesLogger = p.BytesLogger
|
conn.BytesLogger = p.BytesLogger
|
||||||
return snowflake
|
return conn
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// As part of |SnowflakeCollector| interface.
|
// As part of |SnowflakeCollector| interface.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue