} | } | ||||
} | } | ||||
//clang : 平均 256 字节 | |||||
//clang : | |||||
// x64: 平均 256 字节, operator new: size = 48, state size = 32 | |||||
// x86: 平均 121 字节, operator new: size = 40, state size = 16 | |||||
//msvc : 平均 304 字节(vs2022,17.7.4) | //msvc : 平均 304 字节(vs2022,17.7.4) | ||||
// x64: 平均 304 字节, operator new: size = 144, state size = 32 | |||||
// x86: 平均 153 字节, operator new: size = 72, state size = 16 | |||||
#if LIBRF_TUTORIAL_STAND_ALONE | #if LIBRF_TUTORIAL_STAND_ALONE | ||||
int main() | int main() |
char* ptr = _Al.allocate(_Size + _State_size); | char* ptr = _Al.allocate(_Size + _State_size); | ||||
char* _Rptr = ptr + _State_size; | char* _Rptr = ptr + _State_size; | ||||
#if RESUMEF_DEBUG_COUNTER | #if RESUMEF_DEBUG_COUNTER | ||||
std::cout << " generator_promise::new, alloc size=" << (_Size + _State_size) << std::endl; | |||||
std::cout << " generator_promise::new, alloc size=" << (_Size + _State_size) << ", state size=" << _State_size << std::endl; | |||||
std::cout << " generator_promise::new, alloc ptr=" << (void*)ptr << std::endl; | std::cout << " generator_promise::new, alloc ptr=" << (void*)ptr << std::endl; | ||||
std::cout << " generator_promise::new, return ptr=" << (void*)_Rptr << std::endl; | std::cout << " generator_promise::new, return ptr=" << (void*)_Rptr << std::endl; | ||||
#endif | #endif |
for (;;) | for (;;) | ||||
{ | { | ||||
bool val = co_await e.wait_for(1ms); | bool val = co_await e.wait_for(1ms); | ||||
(void)val; | |||||
assert(val == false); | assert(val == false); | ||||
co_await yield(); | co_await yield(); | ||||
} | } | ||||
for (;;) | for (;;) | ||||
{ | { | ||||
bool val = co_await event_t::wait_all_for(1ms, e); | bool val = co_await event_t::wait_all_for(1ms, e); | ||||
(void)val; | |||||
assert(val == false); | assert(val == false); | ||||
co_await yield(); | co_await yield(); | ||||
} | } |