Initial commit

This commit is contained in:
Donny
2019-04-22 20:46:32 +08:00
commit 49ab8aadd1
25441 changed files with 4055000 additions and 0 deletions

35
vendor/github.com/Dai0522/workpool/task.go generated vendored Normal file
View File

@@ -0,0 +1,35 @@
package workpool
import (
"fmt"
"time"
)
// Task interface
type Task interface {
Run() *[]byte
}
// FutureTask out must be blocking chan (size=0)
type FutureTask struct {
T Task
out chan *[]byte
}
// NewFutureTask .
func NewFutureTask(t Task) *FutureTask {
return &FutureTask{
T: t,
out: make(chan *[]byte, 1),
}
}
// Wait for task return until timeout
func (ft *FutureTask) Wait(timeout time.Duration) (res *[]byte, err error) {
select {
case res = <-ft.out:
case <-time.After(timeout):
err = fmt.Errorf("task(%+v) timeout", ft)
}
return
}