acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
aaa_synchronized_routine.h
1#pragma once
2
3//
6//
7//
8// class sync_routine;
9//
10//
11// inline ::pointer<sync_routine>___sync_routine(const ::procedure & procedure);
12//
13//
14// class CLASS_DECL_ACME sync_routine :
15// public ::synchronization// {
16// protected:
17//
18// friend ::pointer<sync_routine>___sync_routine(const ::procedure &routine);
19//
20//
21// sync_routine(const ::procedure & procedure) :
22// m_procedure(routine)
23// {
24//
25// __defer_construct(m_phappeningCompletion);
26//
27// }
28//
29//
30// public:
31//
32//
33// routine m_procedure;
34// ::pointer<manual_reset_happening> m_phappeningCompletion;
35// ::duration m_duration;
36// void m_estatus;
37//
38//
39// virtual ~sync_routine() {}
40//
41//
42// inline virtual void operator()() override
43// {
44//
45// m_estatus = m_procedure();
46//
47// m_phappeningCompletion->set_happening();
48//
49// return m_estatus;
50//
51// }
52//
53//
54// virtual synchronization_result wait(const duration &durationTimeout) override
55// {
56//
57// return m_phappeningCompletion->wait(durationTimeout);
58//
59// }
60//
61//
62// };
63//
64//
65// inline ::pointer<sync_routine>___sync_routine(const ::procedure & procedure)
66// {
67//
68// return allocateø sync_routine(routine);
69//
70// }
71//
72//
74//
75//
76//