Not filling cpui
and leaving trash in it for ARM and E2K architectures was causing program to crash on startup inside query_processor_info()
. The program was eating away all available memory and then crashing.
Since trying to determine CPU features x86-way on alternative architectures makes no sense, added separate implementations for them.
Also fixed incorrectly specified memory order for store operation. Order must be one of std::memory_order_relaxed, std::memory_order_release or std::memory_order_seq_cst. Otherwise the behavior is undefined. This was causing Windows debug build to crash with failed assertion inside std::atomic
.