load_context
load_context(next->context);
load_context(mm->context);
batch = load_context(ce, poison);
mutex_init(&session->load_context.mutex);
uds_init_cond(&session->load_context.cond);
result = uds_make_index(config, open_type, &index_session->load_context,
mutex_lock(&session->load_context.mutex);
switch (session->load_context.status) {
session->load_context.status = INDEX_SUSPENDING;
while ((session->load_context.status != INDEX_SUSPENDED) &&
(session->load_context.status != INDEX_READY)) {
uds_wait_cond(&session->load_context.cond,
&session->load_context.mutex);
session->load_context.status);
mutex_unlock(&session->load_context.mutex);
mutex_lock(&session->load_context.mutex);
switch (session->load_context.status) {
session->load_context.status = INDEX_OPENING;
uds_broadcast_cond(&session->load_context.cond);
session->load_context.status);
mutex_unlock(&session->load_context.mutex);
mutex_lock(&index_session->load_context.mutex);
index_session->load_context.status = INDEX_OPENING;
mutex_unlock(&index_session->load_context.mutex);
mutex_lock(&index_session->load_context.mutex);
if (index_session->load_context.status == INDEX_SUSPENDED) {
index_session->load_context.status = INDEX_FREEING;
uds_broadcast_cond(&index_session->load_context.cond);
mutex_unlock(&index_session->load_context.mutex);
struct index_load_context load_context;
struct index_load_context *load_context, index_callback_fn callback,
index->load_context = load_context;
if (index->load_context != NULL) {
mutex_lock(&index->load_context->mutex);
index->load_context->status = INDEX_READY;
uds_broadcast_cond(&index->load_context->cond);
mutex_unlock(&index->load_context->mutex);
if (index->load_context == NULL)
mutex_lock(&index->load_context->mutex);
if (index->load_context->status != INDEX_SUSPENDING) {
mutex_unlock(&index->load_context->mutex);
index->load_context->status = INDEX_SUSPENDED;
uds_broadcast_cond(&index->load_context->cond);
while ((index->load_context->status != INDEX_OPENING) &&
(index->load_context->status != INDEX_FREEING))
uds_wait_cond(&index->load_context->cond, &index->load_context->mutex);
closing = (index->load_context->status == INDEX_FREEING);
mutex_unlock(&index->load_context->mutex);
struct index_load_context *load_context;
struct index_load_context *load_context,