summaryrefslogtreecommitdiff
path: root/src/pulp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pulp.h')
-rw-r--r--src/pulp.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/pulp.h b/src/pulp.h
index 6111c80..c7edd0f 100644
--- a/src/pulp.h
+++ b/src/pulp.h
@@ -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
© All Rights Reserved