aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/zenazn/goji/web/atomic.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/zenazn/goji/web/atomic.go')
-rw-r--r--vendor/github.com/zenazn/goji/web/atomic.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/vendor/github.com/zenazn/goji/web/atomic.go b/vendor/github.com/zenazn/goji/web/atomic.go
new file mode 100644
index 0000000..795d8e5
--- /dev/null
+++ b/vendor/github.com/zenazn/goji/web/atomic.go
@@ -0,0 +1,18 @@
+// +build !appengine
+
+package web
+
+import (
+ "sync/atomic"
+ "unsafe"
+)
+
+func (rt *router) getMachine() *routeMachine {
+ ptr := (*unsafe.Pointer)(unsafe.Pointer(&rt.machine))
+ sm := (*routeMachine)(atomic.LoadPointer(ptr))
+ return sm
+}
+func (rt *router) setMachine(m *routeMachine) {
+ ptr := (*unsafe.Pointer)(unsafe.Pointer(&rt.machine))
+ atomic.StorePointer(ptr, unsafe.Pointer(m))
+}