Files
MapLibreParticleLab/include/mbgl/util/uv-worker.h
2014-10-22 10:45:50 +02:00

42 lines
948 B
C

#ifndef MBGL_UTIL_UV_WORKER
#define MBGL_UTIL_UV_WORKER
#ifdef __cplusplus
extern "C" {
#endif
#include <mbgl/util/uv-messenger.h>
#include <mbgl/util/uv-channel.h>
#include <stdlib.h>
typedef struct uv_worker_s uv_worker_t;
typedef void (*uv_worker_cb)(void *data);
typedef void (*uv_worker_after_cb)(void *data);
typedef void (*uv_worker_close_cb)(uv_worker_t *worker);
struct uv_worker_s {
#ifndef NDEBUG
unsigned long thread_id;
#endif
uv_loop_t *loop;
uv_messenger_t *msgr;
uv_chan_t chan;
const char *name;
int count;
uv_worker_close_cb close_cb;
unsigned int active_items;
};
int uv_worker_init(uv_worker_t *worker, uv_loop_t *loop, int count, const char *name);
void uv_worker_send(uv_worker_t *worker, void *data, uv_worker_cb work_cb,
uv_worker_after_cb after_work_cb);
void uv_worker_close(uv_worker_t *worker, uv_worker_close_cb close_cb);
#ifdef __cplusplus
}
#endif
#endif