https://github.com/etcd-io/etcd
- HEAD
- refs/for/release-3.4.21-gke
- refs/for/release-3.4.26-gke
- refs/for/release-3.4.27-gke
- refs/heads/dependabot/go_modules/github.com/grpc-ecosystem/grpc-gateway/v2-2.22.0
- refs/heads/dependabot/go_modules/github.com/prometheus/client_golang-1.20.0
- refs/heads/dependabot/go_modules/go.uber.org/atomic-1.10.0
- refs/heads/dependabot/go_modules/tools/mod/github.com/grpc-ecosystem/grpc-gateway/v2-2.22.0
- refs/heads/dependabot/go_modules/tools/mod/github.com/polyfloyd/go-errorlint-1.6.0
- refs/heads/dependabot/go_modules/tools/mod/github.com/prometheus/client_golang-1.20.0
- refs/heads/dependabot/go_modules/tools/mod/github.com/tomarrell/wrapcheck/v2-2.9.0
- refs/heads/dependabot/go_modules/tools/mod/honnef.co/go/tools-0.5.1
- refs/heads/main
- refs/heads/release-0.4
- refs/heads/release-2.0
- refs/heads/release-2.1
- refs/heads/release-2.2
- refs/heads/release-2.3
- refs/heads/release-3.0
- refs/heads/release-3.1
- refs/heads/release-3.2
- refs/heads/release-3.3
- refs/heads/release-3.4
- refs/heads/release-3.5
- refs/heads/retire
- refs/heads/storage-doc
- refs/remotes/origin/release-3.2
- refs/remotes/ptab/ptabor-patch-1
- refs/remotes/upstream/release-3.2
- refs/tags/0
- refs/tags/v0.1.0
- refs/tags/v0.1.1
- refs/tags/v0.2.0-rc1
- refs/tags/v3.2.0+git
- refs/tags/v3.2.0_plus_git
- refs/tags/v3.2.10_plus_git
- refs/tags/v3.3.9_plus_git
- v3.6.0-alpha.0
- v3.5.9
- v3.5.8
- v3.5.7
- v3.5.6
- v3.5.5
- v3.5.4
- v3.5.3
- v3.5.2
- v3.5.15
- v3.5.14
- v3.5.13
- v3.5.12
- v3.5.11
- v3.5.10
- v3.5.1
- v3.5.0-rc.1
- v3.5.0-rc.0
- v3.5.0-beta.4
- v3.5.0-beta.3
- v3.5.0-beta.2
- v3.5.0-beta.1
- v3.5.0-beta.0
- v3.5.0-alpha.0
- v3.5.0
- v3.4.9
- v3.4.8
- v3.4.7
- v3.4.6
- v3.4.5
- v3.4.4
- v3.4.33
- v3.4.32
- v3.4.31
- v3.4.30
- v3.4.3
- v3.4.29
- v3.4.28
- v3.4.27
- v3.4.26
- v3.4.25
- v3.4.24
- v3.4.23
- v3.4.22
- v3.4.21
- v3.4.20
- v3.4.2
- v3.4.19
- v3.4.18
- v3.4.17
- v3.4.16
- v3.4.15
- v3.4.14
- v3.4.13
- v3.4.12
- v3.4.11
- v3.4.10
- v3.4.1
- v3.4.0-rc.4
- v3.4.0-rc.3
- v3.4.0-rc.2
- v3.4.0-rc.1
- v3.4.0-rc.0
- v3.4.0
- v3.3.9
- v3.3.8
- v3.3.7
- v3.3.6
- v3.3.5
- v3.3.4
- v3.3.3
- v3.3.27
- v3.3.26
- v3.3.25
- v3.3.24
- v3.3.23
- v3.3.22
- v3.3.21
- v3.3.20
- v3.3.2
- v3.3.19
- v3.3.18
- v3.3.17
- v3.3.16
- v3.3.15
- v3.3.14-rc.0
- v3.3.14-beta.0
- v3.3.14
- v3.3.13
- v3.3.12
- v3.3.11
- v3.3.10
- v3.3.1
- v3.3.0-rc.4
- v3.3.0-rc.3
- v3.3.0-rc.2
- v3.3.0-rc.1
- v3.3.0-rc.0
- v3.3.0
- v3.2.9
- v3.2.8
- v3.2.7
- v3.2.6
- v3.2.5
- v3.2.4
- v3.2.32
- v3.2.31
- v3.2.30
- v3.2.3
- v3.2.29
- v3.2.28
- v3.2.27
- v3.2.26
- v3.2.25
- v3.2.24
- v3.2.23
- v3.2.22
- v3.2.21
- v3.2.20
- v3.2.2
- v3.2.19
- v3.2.18
- v3.2.17
- v3.2.16
- v3.2.15
- v3.2.14
- v3.2.13
- v3.2.12
- v3.2.11
- v3.2.10
- v3.2.1
- v3.2.0-rc.1
- v3.2.0-rc.0
- v3.2.0
- v3.1.9
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.20
- v3.1.2
- v3.1.19
- v3.1.18
- v3.1.17
- v3.1.16
- v3.1.15
- v3.1.14
- v3.1.13
- v3.1.12
- v3.1.11
- v3.1.10
- v3.1.1
- v3.1.0-rc.1
- v3.1.0-rc.0
- v3.1.0-alpha.1
- v3.1.0-alpha.0
- v3.1.0
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.17
- v3.0.16
- v3.0.15
- v3.0.14
- v3.0.13
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.1
- v3.0.0-beta.0
- v3.0.0
- v2.3.8
- v2.3.7
- v2.3.6
- v2.3.5
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0-alpha.1
- v2.3.0-alpha.0
- v2.3.0
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0-rc.0
- v2.2.0-alpha.1
- v2.2.0-alpha.0
- v2.2.0
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0-rc.0
- v2.1.0-alpha.1
- v2.1.0-alpha.0
- v2.1.0
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.1
- v2.0.0-rc.1
- v2.0.0
- v0.5.0-alpha.5
- v0.5.0-alpha.4
- v0.5.0-alpha.3
- v0.5.0-alpha.2
- v0.5.0-alpha.1
- v0.5.0-alpha.0
- v0.4.9
- v0.4.8
- v0.4.7
- v0.4.6
- v0.4.5
- v0.4.4
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.0-rc4
- v0.2.0-rc3
- v0.2.0-rc2
- v0.2.0-rc0
- v0.2.0
- v0.1.2
- tests/v3.6.0-alpha.0
- tests/v3.5.9
- tests/v3.5.8
- tests/v3.5.7
- tests/v3.5.6
- tests/v3.5.5
- tests/v3.5.4
- tests/v3.5.3
- tests/v3.5.2
- tests/v3.5.15
- tests/v3.5.14
- tests/v3.5.13
- tests/v3.5.12
- tests/v3.5.11
- tests/v3.5.10
- tests/v3.5.1
- tests/v3.5.0-rc.1
- tests/v3.5.0-rc.0
- tests/v3.5.0-beta.4
- tests/v3.5.0-beta.3
- tests/v3.5.0-beta.2
- tests/v3.5.0-alpha.0
- tests/v3.5.0
- server/v3.6.0-alpha.0
- server/v3.5.9
- server/v3.5.8
- server/v3.5.7
- server/v3.5.6
- server/v3.5.5
- server/v3.5.4
- server/v3.5.3
- server/v3.5.2
- server/v3.5.15
- server/v3.5.14
- server/v3.5.13
- server/v3.5.12
- server/v3.5.11
- server/v3.5.10
- server/v3.5.1
- server/v3.5.0-rc.1
- server/v3.5.0-rc.0
- server/v3.5.0-beta.4
- server/v3.5.0-beta.3
- server/v3.5.0-beta.2
- server/v3.5.0-alpha.0
- server/v3.5.0
- raft/v3.6.0-alpha.0
- raft/v3.5.9
- raft/v3.5.8
- raft/v3.5.7
- raft/v3.5.6
- raft/v3.5.5
- raft/v3.5.4
- raft/v3.5.3
- raft/v3.5.2
- raft/v3.5.15
- raft/v3.5.14
- raft/v3.5.13
- raft/v3.5.12
- raft/v3.5.11
- raft/v3.5.10
- raft/v3.5.1
- raft/v3.5.0-rc.1
- raft/v3.5.0-rc.0
- raft/v3.5.0-beta.4
- raft/v3.5.0-beta.3
- raft/v3.5.0-beta.2
- raft/v3.5.0-alpha.0
- raft/v3.5.0
- pkg/v3.6.0-alpha.0
- pkg/v3.5.9
- pkg/v3.5.8
- pkg/v3.5.7
- pkg/v3.5.6
- pkg/v3.5.5
- pkg/v3.5.4
- pkg/v3.5.3
- pkg/v3.5.2
- pkg/v3.5.15
- pkg/v3.5.14
- pkg/v3.5.13
- pkg/v3.5.12
- pkg/v3.5.11
- pkg/v3.5.10
- pkg/v3.5.1
- pkg/v3.5.0-rc.1
- pkg/v3.5.0-rc.0
- pkg/v3.5.0-beta.4
- pkg/v3.5.0-beta.3
- pkg/v3.5.0-beta.2
- pkg/v3.5.0-alpha.0
- pkg/v3.5.0
- etcdutl/v3.6.0-alpha.0
- etcdutl/v3.5.9
- etcdutl/v3.5.8
- etcdutl/v3.5.7
- etcdutl/v3.5.6
- etcdutl/v3.5.5
- etcdutl/v3.5.4
- etcdutl/v3.5.3
- etcdutl/v3.5.2
- etcdutl/v3.5.15
- etcdutl/v3.5.14
- etcdutl/v3.5.13
- etcdutl/v3.5.12
- etcdutl/v3.5.11
- etcdutl/v3.5.10
- etcdutl/v3.5.1
- etcdutl/v3.5.0-rc.1
- etcdutl/v3.5.0-rc.0
- etcdutl/v3.5.0-beta.4
- etcdutl/v3.5.0-beta.3
- etcdutl/v3.5.0-beta.2
- etcdutl/v3.5.0
- etcdctl/v3.6.0-alpha.0
- etcdctl/v3.5.9
- etcdctl/v3.5.8
- etcdctl/v3.5.7
- etcdctl/v3.5.6
- etcdctl/v3.5.5
- etcdctl/v3.5.4
- etcdctl/v3.5.3
- etcdctl/v3.5.2
- etcdctl/v3.5.15
- etcdctl/v3.5.14
- etcdctl/v3.5.13
- etcdctl/v3.5.12
- etcdctl/v3.5.11
- etcdctl/v3.5.10
- etcdctl/v3.5.1
- etcdctl/v3.5.0-rc.1
- etcdctl/v3.5.0-rc.0
- etcdctl/v3.5.0-beta.4
- etcdctl/v3.5.0-beta.3
- etcdctl/v3.5.0-beta.2
- etcdctl/v3.5.0-alpha.0
- etcdctl/v3.5.0
- client/v3.6.0-alpha.0
- client/v3.5.9
- client/v3.5.8
- client/v3.5.7
- client/v3.5.6
- client/v3.5.5
- client/v3.5.4
- client/v3.5.3
- client/v3.5.2
- client/v3.5.15
- client/v3.5.14
- client/v3.5.13
- client/v3.5.12
- client/v3.5.11
- client/v3.5.10
- client/v3.5.1
- client/v3.5.0-rc.1
- client/v3.5.0-rc.0
- client/v3.5.0-beta.4
- client/v3.5.0-beta.3
- client/v3.5.0-beta.2
- client/v3.5.0-alpha.0
- client/v3.5.0
- client/v2.306.0-alpha.0
- client/v2.305.9
- client/v2.305.8
- client/v2.305.7
- client/v2.305.6
- client/v2.305.5
- client/v2.305.4
- client/v2.305.3
- client/v2.305.2
- client/v2.305.15
- client/v2.305.14
- client/v2.305.13
- client/v2.305.12
- client/v2.305.11
- client/v2.305.10
- client/v2.305.1
- client/v2.305.0-rc.1
- client/v2.305.0-rc.0
- client/v2.305.0-beta.4
- client/v2.305.0-beta.3
- client/v2.305.0-beta.2
- client/v2.305.0-alpha.0
- client/v2.305.0
- client/pkg/v3.6.0-alpha.0
- client/pkg/v3.5.9
- client/pkg/v3.5.8
- client/pkg/v3.5.7
- client/pkg/v3.5.6
- client/pkg/v3.5.5
- client/pkg/v3.5.4
- client/pkg/v3.5.3
- client/pkg/v3.5.2
- client/pkg/v3.5.15
- client/pkg/v3.5.14
- client/pkg/v3.5.13
- client/pkg/v3.5.12
- client/pkg/v3.5.11
- client/pkg/v3.5.10
- client/pkg/v3.5.1
- client/pkg/v3.5.0-rc.1
- client/pkg/v3.5.0-rc.0
- client/pkg/v3.5.0-beta.4
- client/pkg/v3.5.0-beta.3
- client/pkg/v3.5.0-beta.2
- client/pkg/v3.5.0
- api/v3.6.0-alpha.0
- api/v3.5.9
- api/v3.5.8
- api/v3.5.7
- api/v3.5.6
- api/v3.5.5
- api/v3.5.4
- api/v3.5.3
- api/v3.5.2
- api/v3.5.15
- api/v3.5.14
- api/v3.5.13
- api/v3.5.12
- api/v3.5.11
- api/v3.5.10
- api/v3.5.1
- api/v3.5.0-rc.1
- api/v3.5.0-rc.0
- api/v3.5.0-beta.4
- api/v3.5.0-beta.3
- api/v3.5.0-beta.2
- api/v3.5.0-alpha.0
- api/v3.5.0
Raw File
Take a new snapshot of a software origin
If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.
Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.![swh spinner](/static/img/swh-spinner.gif)
Processing "take a new snapshot" request ...
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Tip revision: f1d7dd87da3e8feab4aaf675b8e29c6a5ed5f58b authored by Gyu-Ho Lee on 06 October 2017, 15:58:06 UTC
version: bump up to v3.2.9
version: bump up to v3.2.9
Tip revision: f1d7dd8
pauseable_handler.go
// Copyright 2015 The etcd Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package testutil
import (
"net/http"
"sync"
)
type PauseableHandler struct {
Next http.Handler
mu sync.Mutex
paused bool
}
func (ph *PauseableHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
ph.mu.Lock()
paused := ph.paused
ph.mu.Unlock()
if !paused {
ph.Next.ServeHTTP(w, r)
} else {
hj, ok := w.(http.Hijacker)
if !ok {
panic("webserver doesn't support hijacking")
}
conn, _, err := hj.Hijack()
if err != nil {
panic(err.Error())
}
conn.Close()
}
}
func (ph *PauseableHandler) Pause() {
ph.mu.Lock()
defer ph.mu.Unlock()
ph.paused = true
}
func (ph *PauseableHandler) Resume() {
ph.mu.Lock()
defer ph.mu.Unlock()
ph.paused = false
}