Lines Matching defs:ctx
85 # define OLD_SESSION_TIMEOUT ctx->ctx_timeout
131 #define LAUNCH_WORKER(ctx) \
137 if ((r = thread_create(&tid, mi_worker, ctx)) != 0) \
146 if ((lev) < ctx->ctx_dbg) \
157 ** ctx -- context structure
164 mi_start_session(ctx)
165 SMFICTX_PTR ctx;
172 SM_ASSERT(ctx != NULL);
176 if (mi_list_add_ctx(ctx) != MI_SUCCESS)
182 ctx->ctx_sid = id++;
187 ctx->ctx_wstate = WKST_READY_TO_RUN;
192 ctx->ctx_wstate = WKST_RUNNING;
193 LAUNCH_WORKER(ctx);
203 ** ctx -- context structure
210 mi_close_session(ctx)
211 SMFICTX_PTR ctx;
213 SM_ASSERT(ctx != NULL);
215 (void) mi_list_del_ctx(ctx);
216 mi_clr_ctx(ctx);
380 SMFICTX_PTR ctx;
396 ctx = SM_TAILQ_FIRST(&WRK_CTX_HEAD);
397 while (ctx != SM_TAILQ_END(&WRK_CTX_HEAD))
401 ctx_nxt = SM_TAILQ_NEXT(ctx, ctx_link);
402 if (ctx->ctx_wstate == WKST_WAITING)
404 if (ctx->ctx_wait == 0)
405 ctx->ctx_wait = now;
406 else if (ctx->ctx_wait + OLD_SESSION_TIMEOUT
414 ctx->ctx_sd,
415 ctx->ctx_sid));
417 if ((fi_close = ctx->ctx_smfi->xxfi_close) != NULL)
418 (void) (*fi_close)(ctx);
420 mi_close_session(ctx);
423 ctx = ctx_nxt;
444 SM_TAILQ_FOREACH(ctx, &WRK_CTX_HEAD, ctx_link)
451 if (ctx->ctx_wstate == WKST_READY_TO_WAIT)
452 ctx->ctx_wait = now;
455 if ((ctx->ctx_wstate == WKST_READY_TO_WAIT) ||
456 (ctx->ctx_wstate == WKST_WAITING))
488 ctx->ctx_wstate = WKST_WAITING;
489 pfd[nfd].fd = ctx->ctx_sd;
574 SM_TAILQ_FOREACH(ctx, &WRK_CTX_HEAD, ctx_link)
576 if (ctx->ctx_wstate != WKST_WAITING)
581 ctx->ctx_sd , WAIT_FD(i)));
583 if (ctx->ctx_sd == pfd[i].fd)
588 ctx->ctx_sid, i, WAIT_FD(i)));
592 ctx->ctx_wstate = WKST_READY_TO_RUN;
597 ctx->ctx_wstate = WKST_RUNNING;
598 LAUNCH_WORKER(ctx);
607 ctx != NULL ? "" : "NOT", WAIT_FD(i)));
618 ** Do not clean up ctx -- it can cause double-free()s.
621 ** while accessing ctx, but that's maybe for a later version.
626 SMFICTX_PTR ctx;
628 ctx = SM_TAILQ_FIRST(&WRK_CTX_HEAD);
629 if (ctx == NULL)
631 mi_close_session(ctx);
643 ** Value of ctx is NULL or a pointer to a task ready to run.
647 SM_TAILQ_FOREACH(ctx, &WRK_CTX_HEAD, ctx_link) \
649 if (ctx->ctx_wstate == WKST_READY_TO_RUN) \
651 ctx->ctx_wstate = WKST_RUNNING; \
672 SMFICTX_PTR ctx;
677 ctx = (SMFICTX_PTR) arg;
679 if (ctx != NULL)
680 ctx->ctx_wstate = WKST_RUNNING;
686 if (ctx != NULL)
687 ctx->ctx_wstate = WKST_READY_TO_RUN;
701 if (ctx != NULL)
708 res = mi_engine(ctx);
715 ctx->ctx_wstate = WKST_CLOSING;
722 mi_close_session(ctx);
726 ctx->ctx_wstate = WKST_READY_TO_WAIT;
739 ctx = NULL;
749 if (ctx != NULL)
795 ** ctx -- context structure
802 mi_list_add_ctx(ctx)
803 SMFICTX_PTR ctx;
805 SM_ASSERT(ctx != NULL);
806 SM_TAILQ_INSERT_TAIL(&WRK_CTX_HEAD, ctx, ctx_link);
814 ** ctx -- context structure
821 mi_list_del_ctx(ctx)
822 SMFICTX_PTR ctx;
824 SM_ASSERT(ctx != NULL);
828 SM_TAILQ_REMOVE(&WRK_CTX_HEAD, ctx, ctx_link);