]> gitweb.factorcode.org Git - factor.git/blob - vm/run.cpp
vm: replace assert with FACTOR_ASSERT
[factor.git] / vm / run.cpp
1 #include "master.hpp"
2
3 namespace factor
4 {
5
6 void factor_vm::primitive_exit()
7 {
8         exit((int)to_fixnum(ctx->pop()));
9 }
10
11 void exit(int status)
12 {
13         factor_vm::close_console();
14         ::exit(status);
15 }
16
17 void factor_vm::primitive_nano_count()
18 {
19         u64 nanos = nano_count();
20         if(nanos < last_nano_count)
21         {
22                 std::cout << "Monotonic counter decreased from 0x";
23                 std::cout << std::hex << last_nano_count;
24                 std::cout << " to 0x" << nanos << "." << std::dec << "\n";
25                 std::cout << "Please report this error.\n";
26                 current_vm()->factorbug();
27         }
28         last_nano_count = nanos;
29         ctx->push(from_unsigned_8(nanos));
30 }
31
32 void factor_vm::primitive_sleep()
33 {
34         sleep_nanos(to_unsigned_8(ctx->pop()));
35 }
36
37 }