Skip to content

Commit e279075

Browse files
committed
backend: Validate element before pushing to list
1 parent b25883b commit e279075

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

internal/backend/backend.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -110,19 +110,20 @@ func (b *Backend[K, V]) Initialize(key K, value V, ttl time.Duration) {
110110
panic("Initialize: expected element to exist")
111111
}
112112

113+
if elem.Value.initialized {
114+
panic("Initialize: expected an uninitialized element")
115+
}
116+
117+
defer elem.Value.wg.Done()
118+
113119
elem.Value.value = value
114120
if ttl > 0 {
115121
elem.Value.deadline = time.Now().Add(ttl).UnixNano()
116122
}
117123

118124
b.list.PushBack(elem)
119-
if elem.Value.initialized {
120-
panic("Initialize: expected an uninitialized element")
121-
}
122125
elem.Value.initialized = true
123126

124-
defer elem.Value.wg.Done()
125-
126127
if n := b.overflow(); n > 0 {
127128
b.startGCOnce()
128129
b.timer.Reset(0)

0 commit comments

Comments
 (0)