#include <siri/net/pkg.h>
siridb_groups_t * siridb_groups_new(siridb_t * siridb);
-void siridb_groups_start(siridb_groups_t * groups);
+void siridb_groups_start(siridb_t * siridb);
int siridb_groups_save(siridb_groups_t * groups);
ssize_t siridb_groups_get_file(char ** buffer, siridb_t * siridb);
void siridb_groups_init_nseries(siridb_groups_t * groups);
vec_t * nseries; /* list of series we need to assign to groups */
vec_t * ngroups; /* list of groups which need initialization */
uv_mutex_t mutex;
- uv_work_t work;
+ uv_thread_t thread;
};
#endif /* SIRIDB_GROUPS_H_ */
static void GROUPS_free(siridb_groups_t * groups);
static int GROUPS_pkg(siridb_group_t * group, qp_packer_t * packer);
static int GROUPS_nseries(siridb_group_t * group, void * data);
-static void GROUPS_loop(uv_work_t * work);
+static void GROUPS_loop(void * arg);
static void GROUPS_loop_finish(uv_work_t * work, int status);
static int GROUPS_write(siridb_group_t * group, qp_fpacker_t * fpacker);
static void GROUPS_init_groups(siridb_t * siridb);
groups->nseries = vec_new(VEC_DEFAULT_SIZE);
groups->ngroups = vec_new(VEC_DEFAULT_SIZE);
uv_mutex_init(&groups->mutex);
- groups->work.data = (siridb_t *) siridb;
if (!groups->groups || !groups->nseries || !groups->ngroups)
{
/*
* Start group thread.
*/
-void siridb_groups_start(siridb_groups_t * groups)
+void siridb_groups_start(siridb_t * siridb)
{
- uv_queue_work(
- siri.loop,
- &groups->work,
- GROUPS_loop,
- GROUPS_loop_finish);
+ uv_thread_create(&siridb->groups->thread, GROUPS_loop, siridb);
}
/*
}
-
/*
* Group thread.
*/
-static void GROUPS_loop(uv_work_t * work)
+static void GROUPS_loop(void * arg)
{
- siridb_t * siridb = (siridb_t *) work->data;
+ siridb_t * siridb = arg;
siridb_groups_t * groups = siridb->groups;
uint64_t mod_test = 0;
}
groups->status = GROUPS_CLOSED;
-}
-
-static void GROUPS_loop_finish(
- uv_work_t * work,
- int status __attribute__((unused)))
-{
- /*
- * Main Thread
- */
- siridb_t * siridb = (siridb_t *) work->data;
-
- /* decrement groups reference counter */
siridb_groups_decref(siridb->groups);
}