experiments

This commit is contained in:
noah 2024-08-08 00:14:25 -05:00
parent 7781f0c8d6
commit c191f17091
3 changed files with 57 additions and 54 deletions

41
tokio/ffi/runtime.h Normal file
View 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;

View File

@ -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;
};

View File

@ -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;