Skip to content

Commit c1a1722

Browse files
committed
rustdoc: Convert page_pass to pipes
1 parent 76679c1 commit c1a1722

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

src/librustdoc/page_pass.rs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ use sort_pass;
2828
use util::NominalOp;
2929
use util;
3030

31-
use core::oldcomm;
3231
use core::option;
3332
use core::vec;
33+
use core::pipes::*;
3434
use syntax::ast;
3535

3636
pub fn mk_pass(output_style: config::OutputStyle) -> Pass {
@@ -52,24 +52,26 @@ pub fn run(
5252
return doc;
5353
}
5454

55-
let (result_port, page_chan) = do util::spawn_conversation
56-
|page_port, result_chan| {
57-
oldcomm::send(result_chan, make_doc_from_pages(page_port));
55+
let (result_port, result_chan) = stream();
56+
let (page_port, page_chan) = stream();
57+
let page_chan = SharedChan(page_chan);
58+
do task::spawn {
59+
result_chan.send(make_doc_from_pages(&page_port));
5860
};
5961

6062
find_pages(doc, page_chan);
61-
oldcomm::recv(result_port)
63+
result_port.recv()
6264
}
6365

64-
type PagePort = oldcomm::Port<Option<doc::Page>>;
65-
type PageChan = oldcomm::Chan<Option<doc::Page>>;
66+
type PagePort = Port<Option<doc::Page>>;
67+
type PageChan = SharedChan<Option<doc::Page>>;
6668

6769
type NominalPageChan = NominalOp<PageChan>;
6870

69-
fn make_doc_from_pages(page_port: PagePort) -> doc::Doc {
71+
fn make_doc_from_pages(page_port: &PagePort) -> doc::Doc {
7072
let mut pages = ~[];
7173
loop {
72-
let val = oldcomm::recv(page_port);
74+
let val = page_port.recv();
7375
if val.is_some() {
7476
pages += ~[option::unwrap(move val)];
7577
} else {
@@ -83,14 +85,15 @@ fn make_doc_from_pages(page_port: PagePort) -> doc::Doc {
8385

8486
fn find_pages(doc: doc::Doc, page_chan: PageChan) {
8587
let fold = Fold {
88+
ctxt: NominalOp { op: page_chan.clone() },
8689
fold_crate: fold_crate,
8790
fold_mod: fold_mod,
8891
fold_nmod: fold_nmod,
89-
.. fold::default_any_fold(NominalOp { op: page_chan })
92+
.. fold::default_any_fold(NominalOp { op: page_chan.clone() })
9093
};
9194
(fold.fold_doc)(&fold, copy doc);
9295

93-
oldcomm::send(page_chan, None);
96+
page_chan.send(None);
9497
}
9598

9699
fn fold_crate(
@@ -105,7 +108,7 @@ fn fold_crate(
105108
.. copy doc
106109
});
107110

108-
oldcomm::send(fold.ctxt.op, Some(page));
111+
fold.ctxt.op.send(Some(page));
109112

110113
doc
111114
}
@@ -121,7 +124,7 @@ fn fold_mod(
121124

122125
let doc = strip_mod(copy doc);
123126
let page = doc::ItemPage(doc::ModTag(doc));
124-
oldcomm::send(fold.ctxt.op, Some(page));
127+
fold.ctxt.op.send(Some(page));
125128
}
126129

127130
doc
@@ -146,7 +149,7 @@ fn fold_nmod(
146149
) -> doc::NmodDoc {
147150
let doc = fold::default_seq_fold_nmod(fold, doc);
148151
let page = doc::ItemPage(doc::NmodTag(copy doc));
149-
oldcomm::send(fold.ctxt.op, Some(page));
152+
fold.ctxt.op.send(Some(page));
150153
return doc;
151154
}
152155

0 commit comments

Comments
 (0)