aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/google/gopacket/examples/util/util.go
diff options
context:
space:
mode:
authorMilan Lenco <milan.lenco@pantheon.tech>2017-10-11 16:40:58 +0200
committerMilan Lenco <milan.lenco@pantheon.tech>2017-10-13 08:40:37 +0200
commit3f1edad4e6ba0a7876750aea55507fae14d8badf (patch)
treea473997249d9ba7deb70b1076d14e4c4ed029a43 /vendor/github.com/google/gopacket/examples/util/util.go
parent8b66677c2382a8e739d437621de4473d5ec0b9f1 (diff)
ODPM 266: Go-libmemif + 2 examples.
Change-Id: Icdb9b9eb2314eff6c96afe7996fcf2728291de4a Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
Diffstat (limited to 'vendor/github.com/google/gopacket/examples/util/util.go')
-rw-r--r--vendor/github.com/google/gopacket/examples/util/util.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/github.com/google/gopacket/examples/util/util.go b/vendor/github.com/google/gopacket/examples/util/util.go
new file mode 100644
index 0000000..0f698fb
--- /dev/null
+++ b/vendor/github.com/google/gopacket/examples/util/util.go
@@ -0,0 +1,40 @@
+// Copyright 2012 Google, Inc. All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file in the root of the source
+// tree.
+
+// Package util provides shared utilities for all gopacket examples.
+package util
+
+import (
+ "flag"
+ "log"
+ "os"
+ "runtime/pprof"
+)
+
+var cpuprofile = flag.String("cpuprofile", "", "Where to write CPU profile")
+
+// Run starts up stuff at the beginning of a main function, and returns a
+// function to defer until the function completes. It should be used like this:
+//
+// func main() {
+// defer util.Run()()
+// ... stuff ...
+// }
+func Run() func() {
+ flag.Parse()
+ if *cpuprofile != "" {
+ f, err := os.Create(*cpuprofile)
+ if err != nil {
+ log.Fatalf("could not open cpu profile file %q", *cpuprofile)
+ }
+ pprof.StartCPUProfile(f)
+ return func() {
+ pprof.StopCPUProfile()
+ f.Close()
+ }
+ }
+ return func() {}
+}