summaryrefslogtreecommitdiffhomepage
path: root/pkg/waiter
diff options
context:
space:
mode:
authorgVisor bot <gvisor-bot@google.com>2020-06-24 06:37:35 +0000
committergVisor bot <gvisor-bot@google.com>2020-06-24 06:37:35 +0000
commit9183888b520beeee8609170819a28bea89202909 (patch)
tree3cdcfa4de9ced4c539ab7c57e4cf58ffea980f6c /pkg/waiter
parentcab13958a54419262aba2a0cd7f1075ed02c8ee0 (diff)
parent364ac92baf83f2352f78b718090472639bd92a76 (diff)
Merge release-20200608.0-119-g364ac92ba (automated)
Diffstat (limited to 'pkg/waiter')
-rw-r--r--pkg/waiter/waiter_list.go6
-rw-r--r--pkg/waiter/waiter_state_autogen.go109
2 files changed, 83 insertions, 32 deletions
diff --git a/pkg/waiter/waiter_list.go b/pkg/waiter/waiter_list.go
index 35431f5a4..a91063d9e 100644
--- a/pkg/waiter/waiter_list.go
+++ b/pkg/waiter/waiter_list.go
@@ -56,7 +56,7 @@ func (l *waiterList) Back() *Entry {
//
// NOTE: This is an O(n) operation.
func (l *waiterList) Len() (count int) {
- for e := l.Front(); e != nil; e = e.Next() {
+ for e := l.Front(); e != nil; e = (waiterElementMapper{}.linkerFor(e)).Next() {
count++
}
return count
@@ -148,13 +148,13 @@ func (l *waiterList) Remove(e *Entry) {
if prev != nil {
waiterElementMapper{}.linkerFor(prev).SetNext(next)
- } else {
+ } else if l.head == e {
l.head = next
}
if next != nil {
waiterElementMapper{}.linkerFor(next).SetPrev(prev)
- } else {
+ } else if l.tail == e {
l.tail = prev
}
diff --git a/pkg/waiter/waiter_state_autogen.go b/pkg/waiter/waiter_state_autogen.go
index cf7f5fc2c..086f10dbc 100644
--- a/pkg/waiter/waiter_state_autogen.go
+++ b/pkg/waiter/waiter_state_autogen.go
@@ -6,64 +6,115 @@ import (
"gvisor.dev/gvisor/pkg/state"
)
+func (x *Entry) StateTypeName() string {
+ return "pkg/waiter.Entry"
+}
+
+func (x *Entry) StateFields() []string {
+ return []string{
+ "Context",
+ "Callback",
+ "mask",
+ "waiterEntry",
+ }
+}
+
func (x *Entry) beforeSave() {}
-func (x *Entry) save(m state.Map) {
+
+func (x *Entry) StateSave(m state.Sink) {
x.beforeSave()
- m.Save("Context", &x.Context)
- m.Save("Callback", &x.Callback)
- m.Save("mask", &x.mask)
- m.Save("waiterEntry", &x.waiterEntry)
+ m.Save(0, &x.Context)
+ m.Save(1, &x.Callback)
+ m.Save(2, &x.mask)
+ m.Save(3, &x.waiterEntry)
}
func (x *Entry) afterLoad() {}
-func (x *Entry) load(m state.Map) {
- m.Load("Context", &x.Context)
- m.Load("Callback", &x.Callback)
- m.Load("mask", &x.mask)
- m.Load("waiterEntry", &x.waiterEntry)
+
+func (x *Entry) StateLoad(m state.Source) {
+ m.Load(0, &x.Context)
+ m.Load(1, &x.Callback)
+ m.Load(2, &x.mask)
+ m.Load(3, &x.waiterEntry)
+}
+
+func (x *Queue) StateTypeName() string {
+ return "pkg/waiter.Queue"
+}
+
+func (x *Queue) StateFields() []string {
+ return []string{}
}
func (x *Queue) beforeSave() {}
-func (x *Queue) save(m state.Map) {
+
+func (x *Queue) StateSave(m state.Sink) {
x.beforeSave()
if !state.IsZeroValue(&x.list) {
- m.Failf("list is %#v, expected zero", &x.list)
+ state.Failf("list is %#v, expected zero", &x.list)
}
}
func (x *Queue) afterLoad() {}
-func (x *Queue) load(m state.Map) {
+
+func (x *Queue) StateLoad(m state.Source) {
+}
+
+func (x *waiterList) StateTypeName() string {
+ return "pkg/waiter.waiterList"
+}
+
+func (x *waiterList) StateFields() []string {
+ return []string{
+ "head",
+ "tail",
+ }
}
func (x *waiterList) beforeSave() {}
-func (x *waiterList) save(m state.Map) {
+
+func (x *waiterList) StateSave(m state.Sink) {
x.beforeSave()
- m.Save("head", &x.head)
- m.Save("tail", &x.tail)
+ m.Save(0, &x.head)
+ m.Save(1, &x.tail)
}
func (x *waiterList) afterLoad() {}
-func (x *waiterList) load(m state.Map) {
- m.Load("head", &x.head)
- m.Load("tail", &x.tail)
+
+func (x *waiterList) StateLoad(m state.Source) {
+ m.Load(0, &x.head)
+ m.Load(1, &x.tail)
+}
+
+func (x *waiterEntry) StateTypeName() string {
+ return "pkg/waiter.waiterEntry"
+}
+
+func (x *waiterEntry) StateFields() []string {
+ return []string{
+ "next",
+ "prev",
+ }
}
func (x *waiterEntry) beforeSave() {}
-func (x *waiterEntry) save(m state.Map) {
+
+func (x *waiterEntry) StateSave(m state.Sink) {
x.beforeSave()
- m.Save("next", &x.next)
- m.Save("prev", &x.prev)
+ m.Save(0, &x.next)
+ m.Save(1, &x.prev)
}
func (x *waiterEntry) afterLoad() {}
-func (x *waiterEntry) load(m state.Map) {
- m.Load("next", &x.next)
- m.Load("prev", &x.prev)
+
+func (x *waiterEntry) StateLoad(m state.Source) {
+ m.Load(0, &x.next)
+ m.Load(1, &x.prev)
}
func init() {
- state.Register("pkg/waiter.Entry", (*Entry)(nil), state.Fns{Save: (*Entry).save, Load: (*Entry).load})
- state.Register("pkg/waiter.Queue", (*Queue)(nil), state.Fns{Save: (*Queue).save, Load: (*Queue).load})
- state.Register("pkg/waiter.waiterList", (*waiterList)(nil), state.Fns{Save: (*waiterList).save, Load: (*waiterList).load})
- state.Register("pkg/waiter.waiterEntry", (*waiterEntry)(nil), state.Fns{Save: (*waiterEntry).save, Load: (*waiterEntry).load})
+ state.Register((*Entry)(nil))
+ state.Register((*Queue)(nil))
+ state.Register((*waiterList)(nil))
+ state.Register((*waiterEntry)(nil))
}