CONCURRENT ¡COLLECTIONS ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
1 ¡
CONCURRENT COLLECTIONS 2 5/24/11 Concurrent Collec9ons - - PowerPoint PPT Presentation
1 5/24/11 Concurrent Collec9ons CONCURRENT COLLECTIONS 2 5/24/11 Concurrent Collec9ons Acknowledgements Slides and material from Kathleen Knobe (Intel)
5/24/11 ¡ Concurrent ¡Collec9ons ¡
1 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
2 ¡
collec9ons-‑for-‑cc/ ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
3 ¡
produced ¡the ¡data ¡
as ¡necessary ¡by ¡the ¡Controller ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
4 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
5 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
6 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
7 ¡
the ¡prescribed ¡Tab ¡collec9on ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
8 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
9 ¡
5/24/11 ¡
Concurrent ¡Collec9ons ¡
10 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
11 ¡
can ¡succeed ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
12 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
13 ¡
// control tags <int singletonTag: singleton>; <int spanTags: spanID>; // data items [string input <int>: singleton]; [string span <int>: spanID]; [string results <int>: spanID]; // proscription relation <singletonTag> :: (createSpan); <spanTags> :: (processSpan); // program inputs and outputs env -> [input]; env -> <singletonTag>; [results] -> env; // producer/consumer relations [input: singleton] -> (createSpan: singleton)
[span] -> (processSpan) -> [results];
5/24/11 ¡ Concurrent ¡Collec9ons ¡
14 ¡
int createSpan::execute(const int & t, partStr_context & c ) const { // Get input string string in; c.input.get(t, in); while (! in.empty()) { // construct span // … c.span.put(j, in.substr(j, len)); c.spanTags.put(j); // … } return CnC::CNC_Success; }
5/24/11 ¡ Concurrent ¡Collec9ons ¡
15 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
16 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
17 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
18 ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
19 ¡
issue ¡a ¡Get() ¡with ¡the ¡same ¡tag ¡
5/24/11 ¡ Concurrent ¡Collec9ons ¡
20 ¡