]> gitweb.factorcode.org Git - factor.git/blob - vm/safepoints.hpp
vm: write async signals to pipe for multiplexer
[factor.git] / vm / safepoints.hpp
1 namespace factor
2 {
3
4 struct safepoint_state
5 {
6         factor_vm *parent;
7
8         cell fep_p;
9         cell queued_signal;
10         profiling_sample_count sample_counts;
11
12         safepoint_state(factor_vm *parent) :
13                 parent(parent),
14                 fep_p(false),
15                 queued_signal(0),
16                 sample_counts()
17         {
18         }
19
20         void handle_safepoint() volatile;
21
22         void enqueue_safepoint() volatile;
23         void enqueue_samples(cell samples, cell pc, bool foreign_thread_p) volatile;
24         void enqueue_fep() volatile;
25
26         // os-*.cpp
27         void enqueue_signal(cell signal) volatile;
28         void report_signal(int fd) volatile;
29
30 };
31
32 }