static bool after(atf_plan * plan) { if ( ! as ) { error("aerospike was not initialized"); return false; } as_error err; as_error_reset(&err); as_status status = aerospike_close(as, &err); aerospike_destroy(as); if (g_use_async) { as_event_close_loops(); } if (status == AEROSPIKE_OK) { debug("disconnected from %s:%d", g_host, g_port); return true; } else { error("%s @ %s[%s:%d]", g_host, g_port, err.message, err.func, err.file, err.line); return false; } }
as_event_loop* as_event_create_loops(uint32_t capacity) { as_event_send_buffer_size = as_pipe_get_send_buffer_size(); as_event_recv_buffer_size = as_pipe_get_recv_buffer_size(); as_event_loops = cf_malloc(sizeof(as_event_loop) * capacity); if (! as_event_loops) { return 0; } as_event_loop_capacity = capacity; as_event_threads_created = true; for (uint32_t i = 0; i < capacity; i++) { as_event_loop* event_loop = &as_event_loops[i]; event_loop->loop = 0; pthread_mutex_init(&event_loop->lock, 0); event_loop->thread = 0; event_loop->index = i; as_queue_init(&event_loop->pipe_cb_queue, sizeof(as_queued_pipe_cb), AS_EVENT_QUEUE_INITIAL_CAPACITY); event_loop->pipe_cb_calling = false; if (! as_event_create_loop(event_loop)) { as_event_close_loops(); return 0; } as_event_loop_size++; } return as_event_loops; }