summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2009-12-23 20:02:39 +0100
committerhut <hut@lavabit.com>2009-12-23 20:02:39 +0100
commitfd39b80a83da3049198ef317aab2d7bc5c82039a (patch)
tree15f2f6762f79002266db64a0885d83806ab5d509
parent793554498569c8f39e0ffcff4b475a948a4645c8 (diff)
downloadranger-fd39b80a83da3049198ef317aab2d7bc5c82039a.tar.gz
optimized directory loading
instead of creating a new directory object when loading_content,
get the one which is cached in the environment.
-rw-r--r--ranger/fsobject/directory.py4
-rw-r--r--ranger/fsobject/loader.py16
2 files changed, 12 insertions, 8 deletions
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py
index 99a4bc61..44c4cf96 100644
--- a/ranger/fsobject/directory.py
+++ b/ranger/fsobject/directory.py
@@ -128,10 +128,10 @@ class Directory(SuperClass, SettingsAware):
 			files = []
 			for name in self.filenames:
 				if isdir(name):
-					item = Directory(name)
+					item = self.fm.env.get_directory(name)
 				else:
 					item = File(name)
-				item.load()
+				item.load_if_outdated()
 				files.append(item)
 				yield
 
diff --git a/ranger/fsobject/loader.py b/ranger/fsobject/loader.py
index 00992651..483595c3 100644
--- a/ranger/fsobject/loader.py
+++ b/ranger/fsobject/loader.py
@@ -37,12 +37,16 @@ class Loader(object):
 		self.queue.appendleft(obj)
 
 	def work(self):
-		if not self.queue:
-			return
-
-		item = self.queue[0]
-		if item.load_generator is None:
-			self.queue.popleft()
+		while True:
+			# get the first item with a proper load_generator
+			try:
+				item = self.queue[0]
+				if item.load_generator is None:
+					self.queue.popleft()
+				else:
+					break
+			except IndexError:
+				return
 
 		self.rotate()
 		self.tick += 1
gt; 2006-09-12 09:46:19 +0200 committer Anselm R. Garbe <arg@10kloc.org> 2006-09-12 09:46:19 +0200 made introduction comment in dwm.h shorter' href='/acidbong/suckless/dwm/commit/dwm.h?h=5.6.1&id=cbfc69e310e41cf0d9d4ae7529856014f2b88822'>cbfc69e ^
886b208 ^

e6cc223 ^
551d6bb ^
1076f2b

b515765 ^
95e8d12 ^
8b59083 ^
7b5638f ^
7c2e3bb ^
1c2d673 ^

080a38d ^
7b5638f ^
281f098 ^








b5159df ^
9955ddc ^
c47da14 ^
281f098 ^
c53980c ^
b5159df ^
8b59083 ^


bf35794 ^

b5159df ^
8b59083 ^
281f098 ^
8b59083 ^
b55bd70 ^


bf35794 ^


281f098 ^
8b59083 ^
b5159df ^
1076f2b
da2bbd3 ^
3399650 ^
1173723 ^
346bdea ^
438beea ^
a05beb6 ^
2e836ec ^
a05beb6 ^
321e8d5 ^
0f395c1 ^
b355755 ^
1076f2b
72707c2 ^
15abade ^
bf35794 ^
7e597ae ^
1076f2b

281f098 ^


6fc8a63 ^
b003a35 ^
6fc8a63 ^
281f098 ^
5983c00 ^
bf35794 ^
d800ec0 ^
7d7cde0 ^
bf35794 ^
d2d394e ^
bf35794 ^
bf35794 ^
39677ec ^
439e15d ^
d2d394e ^
b4d53bf ^
281f098 ^






6092aa9 ^
d2d394e ^

281f098 ^
3399650 ^
d7e1708 ^
6b25d06 ^

281f098 ^


868159f ^
d7e1708 ^
dba2306 ^
6b25d06 ^

b9da4b0 ^
9e8b325 ^
281f098 ^



9e8b325 ^
dba2306 ^
6b25d06 ^
281f098 ^

d2d394e ^
868159f ^

29355bd ^
8b59083 ^
281f098 ^
868159f ^
281f098 ^
868159f ^
aa13727 ^

281f098 ^
5983c00 ^

281f098 ^


4b5b3d9 ^
6b25d06 ^
8dc8605 ^
868159f ^


d2d394e ^
fee8df6 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172