Skip to content

Commit

Permalink
Upgrade go-syncmap
Browse files Browse the repository at this point in the history
Signed-off-by: Vladimir Popov <[email protected]>
  • Loading branch information
Vladimir Popov committed Nov 2, 2020
1 parent f9fae5a commit 6bd25ab
Show file tree
Hide file tree
Showing 20 changed files with 673 additions and 160 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
go-version: 1.13
- name: Install proto-gen-go
run: go get -u github.com/golang/protobuf/[email protected]
- name: Install proto-gen-go
- name: Install go-syncmap
run: go get github.com/searKing/golang/tools/cmd/go-syncmap
- name: Generate files
run: go generate ./...
Expand Down
46 changes: 38 additions & 8 deletions pkg/networkservice/common/externalips/string_map.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 38 additions & 8 deletions pkg/networkservice/common/interpose/connection_info_map.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pkg/networkservice/common/timeout/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ previous NSM-based application. For such case connection should be closed.

## timeoutServer

timeoutServer keeps timers [timeout.timerMap](https://github.com/networkservicemesh/sdk/blob/master/pkg/networkservice/common/timeout/gen.go#L27)
timeoutServer keeps timers [timeout.timerMap](https://github.com/networkservicemesh/sdk/blob/master/pkg/networkservice/common/timeout/gen.go#L26)
mapping incoming request Connection.ID to a timeout timer firing Close on the subsequent chain after the connection previous
path element expires. To prevent simultaneous execution of multiple Request, Close event for the same Connection.ID in parallel
it also keeps executors [timeout.executorMap](https://github.com/networkservicemesh/sdk/blob/master/pkg/networkservice/common/timeout/gen.go#L37)
it also keeps executors [timeout.executorMap](https://github.com/networkservicemesh/sdk/blob/master/pkg/networkservice/common/timeout/gen.go#L27)
mapping request Connection.ID to an executor for serializing all Request, Close event for the mapped Connection.ID.

timeoutServer closes only subsequent chain elements and uses base context for the Close. So all the chain elements in
Expand Down
49 changes: 40 additions & 9 deletions pkg/networkservice/common/timeout/executor_map.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 0 additions & 10 deletions pkg/networkservice/common/timeout/gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,10 @@ package timeout

import (
"sync"
"time"
)

//go:generate go-syncmap -output timer_map.gen.go -type timerMap<string,*time.Timer>
//go:generate go-syncmap -output executor_map.gen.go -type executorMap<string,*github.com/edwarnicke/serialize.Executor>

type timerMap sync.Map

func (m *timerMap) LoadAndDelete(key string) (*time.Timer, bool) {
value, loaded := (*sync.Map)(m).LoadAndDelete(key)
if value == nil {
return nil, loaded
}
return value.(*time.Timer), loaded
}

type executorMap sync.Map
Loading

0 comments on commit 6bd25ab

Please sign in to comment.