28 lines
693 B
C++
28 lines
693 B
C++
#include "master.hpp"
|
|
|
|
namespace factor {
|
|
|
|
void factor_vm::primitive_exit() { exit((int)to_fixnum(ctx->pop())); }
|
|
|
|
void exit(int status) {
|
|
factor_vm::close_console();
|
|
::exit(status);
|
|
}
|
|
|
|
void factor_vm::primitive_nano_count() {
|
|
uint64_t nanos = nano_count();
|
|
if (nanos < last_nano_count) {
|
|
std::cout << "Monotonic counter decreased from 0x";
|
|
std::cout << std::hex << last_nano_count;
|
|
std::cout << " to 0x" << nanos << "." << std::dec << "\n";
|
|
std::cout << "Please report this error.\n";
|
|
current_vm()->factorbug();
|
|
}
|
|
last_nano_count = nanos;
|
|
ctx->push(from_unsigned_8(nanos));
|
|
}
|
|
|
|
void factor_vm::primitive_sleep() { sleep_nanos(to_unsigned_8(ctx->pop())); }
|
|
|
|
}
|