mongoc_cursor_ptr future_get_mongoc_cursor_ptr (future_t *future) { if (future_wait (future)) { return future_value_get_mongoc_cursor_ptr (&future->return_value); } fprintf (stderr, "%s timed out\n", BSON_FUNC); abort (); }
static void * background_mongoc_cursor_destroy (void *data) { future_t *future = (future_t *) data; future_value_t return_value; return_value.type = future_value_void_type; mongoc_cursor_destroy ( future_value_get_mongoc_cursor_ptr (future_get_param (future, 0))); future_resolve (future, return_value); return NULL; }
static void * background_mongoc_cursor_next (void *data) { future_t *future = (future_t *) data; future_value_t return_value; return_value.type = future_value_bool_type; future_value_set_bool ( &return_value, mongoc_cursor_next ( future_value_get_mongoc_cursor_ptr (future_get_param (future, 0)), future_value_get_const_bson_ptr_ptr (future_get_param (future, 1)) )); future_resolve (future, return_value); return NULL; }