acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
procedure_array.h
1#pragma once
2
3
4//class ::procedure_array :
5// virtual public array < object_procedure >
6//{
7//public:
8//
9//
10// ::procedure_array(::particle * pparticle) :
11// ::matter(pparticle)
12// {
13//
14// }
15//
16//
17// inline thread_ptra async_all()
18// {
19//
20// thread_ptra threadptra;
21//
22// auto & a = *this;
23//
24// for(auto & proutine : a)
25// {
26//
27// threadptra.add(fork([=]()
28// {
29//
30// (this->*proutine)();
31//
32// }));
33//
34// }
35//
36// return threadptra;
37//
38// }
39//
40//
41// inline void sync_all()
42// {
43//
44// auto & a = *this;
45//
46// for(auto & proutine : a)
47// {
48//
49// try
50// {
51//
52// if(!::task_get_run())
53// {
54//
55// break;
56//
57// }
58//
59// }
60// catch(...)
61// {
62//
63// }
64//
65// try
66// {
67//
68// (this->*proutine)();
69//
70// }
71// catch(...)
72// {
73//
74// }
75//
76// }
77//
78// }
79//
80//
81// inline ::extended::status try_sync_catch_all()
82// {
83//
84// ::extended::status result;
85//
86// auto & a = *this;
87//
88// for(auto & proutine : a)
89// {
90//
91// try
92// {
93//
94// if(!::task_get_run())
95// {
96//
97// break;
98//
99// }
100//
101// }
102// catch(const ::exception & e)
103// {
104//
105// result.add(e);
106//
107// }
108// catch(...)
109// {
110//
111// result.add(::error_exception);
112//
113// }
114//
115// try
116// {
117//
118// (this->*proutine)();
119//
120// }
121// catch(const ::exception & e)
122// {
123//
124// result.add(e);
125//
126// }
127// catch(...)
128// {
129//
130// result.add(::error_exception);
131//
132// }
133//
134// }
135//
136// return result;
137//
138// }
139//
140//
141//};
142//
143//
144//typedef ::pointer<::procedure_array>procedure_array_pointer;