Skip to content

Commit ee0082a

Browse files
committed
remove atomic
1 parent f530e23 commit ee0082a

File tree

1 file changed

+8
-31
lines changed

1 file changed

+8
-31
lines changed

bitswap/network/ipfs_impl.go

+8-31
Original file line numberDiff line numberDiff line change
@@ -82,32 +82,9 @@ type impl struct {
8282
receivers []Receiver
8383
}
8484

85-
// interfaceWrapper is concrete type that wraps an interface. Necessary because
86-
// atomic.Value needs the same type and can not Store(nil). This indirection
87-
// allows us to store nil.
88-
type interfaceWrapper[T any] struct {
89-
t T
90-
}
91-
type atomicInterface[T any] struct {
92-
iface atomic.Value
93-
}
94-
95-
func (a *atomicInterface[T]) Load() T {
96-
var v T
97-
x := a.iface.Load()
98-
if x != nil {
99-
return x.(interfaceWrapper[T]).t
100-
}
101-
return v
102-
}
103-
104-
func (a *atomicInterface[T]) Store(v T) {
105-
a.iface.Store(interfaceWrapper[T]{v})
106-
}
107-
10885
type streamMessageSender struct {
10986
to peer.ID
110-
stream atomicInterface[network.Stream]
87+
stream network.Stream
11188
bsnet *impl
11289
opts *MessageSenderOpts
11390
}
@@ -118,7 +95,7 @@ type HasContext interface {
11895

11996
// Open a stream to the remote peer
12097
func (s *streamMessageSender) Connect(ctx context.Context) (network.Stream, error) {
121-
stream := s.stream.Load()
98+
stream := s.stream
12299
if stream != nil {
123100
return stream, nil
124101
}
@@ -135,35 +112,35 @@ func (s *streamMessageSender) Connect(ctx context.Context) (network.Stream, erro
135112
return nil, err
136113
}
137114

138-
s.stream.Store(stream)
115+
s.stream = stream
139116
return stream, nil
140117
}
141118

142119
// Reset the stream
143120
func (s *streamMessageSender) Reset() error {
144-
stream := s.stream.Load()
121+
stream := s.stream
145122
if stream != nil {
146123
err := stream.Reset()
147-
s.stream.Store(nil)
124+
s.stream = nil
148125
return err
149126
}
150127
return nil
151128
}
152129

153130
// Close the stream
154131
func (s *streamMessageSender) Close() error {
155-
stream := s.stream.Load()
132+
stream := s.stream
156133
if stream != nil {
157134
err := stream.Close()
158-
s.stream.Store(nil)
135+
s.stream = nil
159136
return err
160137
}
161138
return nil
162139
}
163140

164141
// Indicates whether the peer supports HAVE / DONT_HAVE messages
165142
func (s *streamMessageSender) SupportsHave() bool {
166-
stream := s.stream.Load()
143+
stream := s.stream
167144
if stream == nil {
168145
return false
169146
}

0 commit comments

Comments
 (0)