14965: Optimizes dict iteration
authorEric Biagiotti <ebiagiotti@veritasgenetics.com>
Thu, 18 Jul 2019 19:28:05 +0000 (15:28 -0400)
committerEric Biagiotti <ebiagiotti@veritasgenetics.com>
Thu, 18 Jul 2019 19:28:05 +0000 (15:28 -0400)
Arvados-DCO-1.1-Signed-off-by: Eric Biagiotti <ebiagiotti@veritasgenetics.com>

services/fuse/arvados_fuse/__init__.py
services/fuse/arvados_fuse/fusedir.py

index ef66a97fa362468cd46caa48e164fde27f5842ea..1fbfc1ee46424ab95ae90449694f0426f50cb78a 100644 (file)
@@ -54,6 +54,7 @@ from __future__ import division
 from future.utils import viewitems
 from future.utils import native
 from future.utils import listvalues
+from future.utils import listitems
 from future import standard_library
 standard_library.install_aliases()
 from builtins import next
@@ -723,8 +724,7 @@ class Operations(llfuse.Operations):
 
         # update atime
         self.inodes.touch(p)
-
-        self._filehandles[fh] = DirectoryHandle(fh, p, [('.', p), ('..', parent)] + list(p.items()))
+        self._filehandles[fh] = DirectoryHandle(fh, p, [('.', p), ('..', parent)] + listitems(p))
         return fh
 
     @readdir_time.time()
index 9d53df950b8cd4886398be7134d4207dcb0beef5..328765744128d180ba30854854f71b2340ee1cc0 100644 (file)
@@ -5,6 +5,7 @@
 from __future__ import absolute_import
 from __future__ import division
 from future.utils import viewitems
+from future.utils import itervalues
 from builtins import dict
 import logging
 import re
@@ -167,7 +168,7 @@ class Directory(FreshBase):
     def in_use(self):
         if super(Directory, self).in_use():
             return True
-        for v in self._entries.values():
+        for v in itervalues(self._entries):
             if v.in_use():
                 return True
         return False
@@ -175,7 +176,7 @@ class Directory(FreshBase):
     def has_ref(self, only_children):
         if super(Directory, self).has_ref(only_children):
             return True
-        for v in self._entries.values():
+        for v in itervalues(self._entries):
             if v.has_ref(False):
                 return True
         return False