sample-controller/vendor/github.com/modern-go/concurrent
Kubernetes Publisher c0feae0701 Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline
Automatic merge from submit-queue (batch tested with PRs 59965, 59115, 63076, 63059). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Upgrade dep json-iterator/go to fix base64 decode bug

**What this PR does / why we need it**:
upgrade dep `json-iterator/go` to fix base64 decode bug #62742

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #62742

**Special notes for your reviewer**:
Just upgrade `json-iterator/go` to latest which includes base64 decode fix https://github.com/json-iterator/go/pull/266
No other code changes

**Release note**:

```release-note
None
```

Kubernetes-commit: 3dbcd1ddcee786f443f89a82514bbd9c6ad06c99
2018-04-26 07:24:17 +00:00
..
.gitignore Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
.travis.yml Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
executor.go Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
go_above_19.go Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
go_below_19.go Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
LICENSE Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
log.go Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
README.md Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
test.sh Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00
unbounded_executor.go Merge pull request #63059 from ceshihao/upgrade_json_package_fix_base64_newline 2018-04-26 07:24:17 +00:00

concurrent

Sourcegraph GoDoc Build Status codecov rcard License

  • concurrent.Map: backport sync.Map for go below 1.9
  • concurrent.Executor: goroutine with explicit ownership and cancellable

concurrent.Map

because sync.Map is only available in go 1.9, we can use concurrent.Map to make code portable

m := concurrent.NewMap()
m.Store("hello", "world")
elem, found := m.Load("hello")
// elem will be "world"
// found will be true

concurrent.Executor

executor := concurrent.NewUnboundedExecutor()
executor.Go(func(ctx context.Context) {
    everyMillisecond := time.NewTicker(time.Millisecond)
    for {
        select {
        case <-ctx.Done():
            fmt.Println("goroutine exited")
            return
        case <-everyMillisecond.C:
            // do something
        }
    }
})
time.Sleep(time.Second)
executor.StopAndWaitForever()
fmt.Println("executor stopped")

attach goroutine to executor instance, so that we can

  • cancel it by stop the executor with Stop/StopAndWait/StopAndWaitForever
  • handle panic by callback: the default behavior will no longer crash your application