diff options
Diffstat (limited to 'src/pulp.h')
-rw-r--r-- | src/pulp.h | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -24,14 +24,21 @@ typedef struct pulp_t pulp_t; typedef uint64_t pulp_usec_t; typedef struct thunk_t thunk_t; +/* for conveniences like trivial stack allocation, this is public */ +typedef struct pulp_mailbox_t { + unsigned size, count; + void *slots[]; +} pulp_mailbox_t; + pulp_t * pulp_new(void); void pulp_free(pulp_t *pulp); int pulp_tick(pulp_t *pulp, unsigned *next_tick_delay_us); void pulp_run(pulp_t *pulp); pulp_fiber_t * pulp_fiber_new(pulp_t *pulp, unsigned delay_ms, thunk_t *thunk); -void pulp_msleep(pulp_t *pulp, unsigned milliseconds); -void pulp_sleep(pulp_t *pulp, unsigned seconds); +void pulp_msleep(pulp_t *pulp, unsigned milliseconds, pulp_mailbox_t *mailbox); +void pulp_sleep(pulp_t *pulp, unsigned seconds, pulp_mailbox_t *mailbox); pulp_usec_t pulp_now(pulp_t *pulp); pulp_fiber_t * pulp_self(pulp_t *pulp); +int pulp_fiber_get_mailslot(pulp_t *pulp, pulp_fiber_t *fiber, void ***res_mailslot); #endif |