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) {