From 65136855203bd5865fffbdcc32c25968e18229d5 Mon Sep 17 00:00:00 2001 From: kortschak Date: Mon, 4 Aug 2014 12:32:43 +0930 Subject: [PATCH] Fix lock contention --- query/gremlin/finals.go | 1 - query/gremlin/session.go | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query/gremlin/finals.go b/query/gremlin/finals.go index 42998fa..916cb26 100644 --- a/query/gremlin/finals.go +++ b/query/gremlin/finals.go @@ -255,7 +255,6 @@ func runIteratorOnSession(it graph.Iterator, ses *Session) { it, _ = it.Optimize() glog.V(2).Infoln(it.DebugString(0)) for { - // TODO(barakmich): Better halting. select { case <-ses.kill: return diff --git a/query/gremlin/session.go b/query/gremlin/session.go index 91c509a..8000c17 100644 --- a/query/gremlin/session.go +++ b/query/gremlin/session.go @@ -141,8 +141,9 @@ func (s *Session) runUnsafe(input interface{}) (otto.Value, error) { } s.envLock.Lock() - defer s.envLock.Unlock() - return s.env.Run(input) + env := s.env + s.envLock.Unlock() + return env.Run(input) } func (s *Session) ExecInput(input string, out chan interface{}, limit int) {