]>
Commit | Line | Data |
---|---|---|
970d7e83 | 1 | extern mod extra; |
223e47cc | 2 | |
970d7e83 LB |
3 | use std::comm::Chan; |
4 | use std::task; | |
5 | use std::uint; | |
223e47cc LB |
6 | |
7 | type RingBuffer = ~[float]; | |
8 | type SamplesFn = ~fn(samples: &RingBuffer); | |
9 | ||
10 | enum Msg | |
11 | { | |
12 | GetSamples(~str, SamplesFn), // sample set name, callback which receives samples | |
13 | } | |
14 | ||
15 | fn foo(name: ~str, samples_chan: Chan<Msg>) { | |
16 | do task::spawn | |
17 | { | |
18 | let callback: SamplesFn = | |
19 | |buffer| | |
20 | { | |
21 | for uint::range(0, buffer.len()) | |
22 | |i| {error!("%?: %f", i, buffer[i])} | |
23 | }; | |
24 | samples_chan.send(GetSamples(name.clone(), callback)); | |
25 | }; | |
26 | } | |
27 | ||
28 | pub fn main() {} |