Skip to content

Commit 312f532

Browse files
committed
---
yaml --- r: 118120 b: refs/heads/try c: 0777ce8 h: refs/heads/master v: v3
1 parent 5b21883 commit 312f532

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 3770c42a4959cbabc73da52abc7e3db96657974e
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: d6736a1440d42f6af967a8a20ab8d73522112b72
5-
refs/heads/try: 356423d8f1c308f0dc77f803f8ed00c7e80305f3
5+
refs/heads/try: 0777ce86e1adc55362e1190db7b74e8f29559b3d
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/src/librustdoc/html/render.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -307,11 +307,17 @@ pub fn run(mut krate: clean::Crate, dst: Path) -> io::IoResult<()> {
307307
}
308308

309309
let index = try!(build_index(&krate, &mut cache));
310-
try!(write_shared(&cx, &krate, &cache, index));
310+
311+
// Freeze the cache now that the index has been built. Put an Arc into TLS
312+
// for future parallelization opportunities
313+
let cache = Arc::new(cache);
314+
cache_key.replace(Some(cache.clone()));
315+
316+
try!(write_shared(&cx, &krate, &*cache, index));
311317
let krate = try!(render_sources(&mut cx, krate));
312318

313319
// And finally render the whole crate's documentation
314-
cx.krate(krate, cache)
320+
cx.krate(krate)
315321
}
316322

317323
fn build_index(krate: &clean::Crate, cache: &mut Cache) -> io::IoResult<String> {
@@ -954,16 +960,13 @@ impl Context {
954960
///
955961
/// This currently isn't parallelized, but it'd be pretty easy to add
956962
/// parallelization to this function.
957-
fn krate(self, mut krate: clean::Crate, cache: Cache) -> io::IoResult<()> {
963+
fn krate(self, mut krate: clean::Crate) -> io::IoResult<()> {
958964
let mut item = match krate.module.take() {
959965
Some(i) => i,
960966
None => return Ok(())
961967
};
962968
item.name = Some(krate.name);
963969

964-
// using a rwarc makes this parallelizable in the future
965-
cache_key.replace(Some(Arc::new(cache)));
966-
967970
let mut work = vec!((self, item));
968971
loop {
969972
match work.pop() {

0 commit comments

Comments
 (0)