]> gitweb.factorcode.org Git - factor.git/blob - vm/run.cpp
Merge remote-tracking branch 'malu/semantic-versioning'
[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 factor_vm::primitive_nano_count()
12 {
13         u64 nanos = nano_count();
14         if(nanos < last_nano_count)
15         {
16                 std::cout << "Monotonic counter decreased from 0x";
17                 std::cout << std::hex << last_nano_count;
18                 std::cout << " to 0x" << nanos << "." << std::dec << "\n";
19                 std::cout << "Please report this error.\n";
20                 current_vm()->factorbug();
21         }
22         last_nano_count = nanos;
23         ctx->push(from_unsigned_8(nanos));
24 }
25
26 void factor_vm::primitive_sleep()
27 {
28         sleep_nanos(to_unsigned_8(ctx->pop()));
29 }
30
31 }