ソースを参照

update predicate syntax

Darien Raymond 9 年 前
コミット
f8ad1f4a3e
2 ファイル変更9 行追加1 行削除
  1. 8 0
      common/predicate/predicate.go
  2. 1 1
      transport/internet/kcp/connection.go

+ 8 - 0
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 {

+ 1 - 1
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(