From f8ad1f4a3e38baa916af26472ac073f4004ddd73 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Tue, 11 Oct 2016 12:44:17 +0200 Subject: [PATCH] update predicate syntax --- common/predicate/predicate.go | 8 ++++++++ transport/internet/kcp/connection.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/common/predicate/predicate.go b/common/predicate/predicate.go index d5a9016df..c6c2e3487 100644 --- a/common/predicate/predicate.go +++ b/common/predicate/predicate.go @@ -2,6 +2,14 @@ package predicate type Predicate func() bool +func (this Predicate) And(predicate Predicate) Predicate { + return All(this, predicate) +} + +func (this Predicate) Or(predicate Predicate) Predicate { + return Any(this, predicate) +} + func All(predicates ...Predicate) Predicate { return func() bool { for _, p := range predicates { diff --git a/transport/internet/kcp/connection.go b/transport/internet/kcp/connection.go index eba9feb94..8f4201099 100644 --- a/transport/internet/kcp/connection.go +++ b/transport/internet/kcp/connection.go @@ -233,7 +233,7 @@ func NewConnection(conv uint16, writerCloser io.WriteCloser, local *net.UDPAddr, } conn.dataUpdater = NewUpdater( conn.interval, - predicate.All(predicate.Not(isTerminating), predicate.Any(conn.sendingWorker.UpdateNecessary, conn.receivingWorker.UpdateNecessary)), + predicate.Not(isTerminating).And(predicate.Any(conn.sendingWorker.UpdateNecessary, conn.receivingWorker.UpdateNecessary)), isTerminating, conn.updateTask) conn.pingUpdater = NewUpdater(