mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-25 12:00:35 +00:00
experiments
This commit is contained in:
parent
7781f0c8d6
commit
c191f17091
41
tokio/ffi/runtime.h
Normal file
41
tokio/ffi/runtime.h
Normal file
@ -0,0 +1,41 @@
|
||||
#include <stdint.h>
|
||||
|
||||
struct RuntimeHooks {
|
||||
void (*on_thread_park)(void);
|
||||
|
||||
void (*on_thread_unpark)(void);
|
||||
|
||||
void (*on_thread_start)(void);
|
||||
|
||||
void (*on_thread_stop)(void);
|
||||
}__attribute__((__packed__));
|
||||
|
||||
struct RuntimeOptions {
|
||||
bool enable_time;
|
||||
bool enable_io;
|
||||
|
||||
uint32_t event_interval;
|
||||
uint32_t global_queue_interval;
|
||||
|
||||
size_t max_blocking_threads;
|
||||
|
||||
size_t max_io_events_per_tick;
|
||||
|
||||
uint8_t runtime_kind;
|
||||
|
||||
bool start_paused;
|
||||
|
||||
struct timespec *thread_keep_alive;
|
||||
|
||||
struct RuntimeHooks *runtime_hooks;
|
||||
|
||||
char *thread_name;
|
||||
|
||||
char *(*thread_name_fn)(void);
|
||||
|
||||
size_t thread_stack_size;
|
||||
|
||||
size_t worker_threads;
|
||||
}__attribute__((__packed__));
|
||||
|
||||
struct Runtime;
|
@ -1,10 +1,23 @@
|
||||
struct RawWakerVTable {
|
||||
void (*clone)(void *);
|
||||
|
||||
void (*wake)(void *);
|
||||
|
||||
void (*wake_by_ref)(void *);
|
||||
|
||||
void (*drop)(void *);
|
||||
} __attribute__((__packed__));
|
||||
|
||||
struct Waker {
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct Context {
|
||||
void (*wake) (void*);
|
||||
|
||||
};
|
||||
|
||||
struct Task {
|
||||
void* data;
|
||||
void* (*poll) (void*);
|
||||
void *data;
|
||||
|
||||
};
|
||||
|
||||
|
@ -1,51 +0,0 @@
|
||||
#include <stdint.h>
|
||||
|
||||
struct RuntimeUnstableOptions {
|
||||
// unstable
|
||||
bool enable_metrics_poll_count_histogram;
|
||||
// unstable
|
||||
size_t metrics_poll_count_histogram_buckets;
|
||||
// unstable
|
||||
struct timespec metrics_poll_count_histogram_resolution;
|
||||
|
||||
// unstable
|
||||
uint8_t unhandled_panic;
|
||||
};
|
||||
|
||||
struct RuntimeHooks {
|
||||
void (*on_thread_park) (void);
|
||||
void (*on_thread_unpark) (void);
|
||||
void (*on_thread_start) (void);
|
||||
void (*on_thread_stop) (void);
|
||||
};
|
||||
|
||||
struct RuntimeOptions {
|
||||
// unstable
|
||||
bool disable_lifo_slot;
|
||||
|
||||
bool enable_time;
|
||||
bool enable_io;
|
||||
|
||||
uint32_t event_interval;
|
||||
uint32_t global_queue_interval;
|
||||
|
||||
size_t max_blocking_threads;
|
||||
|
||||
size_t max_io_events_per_tick;
|
||||
|
||||
uint8_t runtime_kind;
|
||||
|
||||
// todo rng_seed
|
||||
|
||||
bool start_paused;
|
||||
|
||||
struct timespec thread_keep_alive;
|
||||
|
||||
char* thread_name;
|
||||
char* (*thread_name_fn) (void);
|
||||
size_t thread_stack_size;
|
||||
|
||||
size_t worker_threads;
|
||||
};
|
||||
|
||||
struct Runtime;
|
Loading…
x
Reference in New Issue
Block a user