Lines Matching refs:session
76 MppDevSession *session; member
246 MppDevSession *session = NULL; in process_task() local
269 session = task->session; in process_task()
286 batch->batch_id, task->batch_slot_id, session->client); in process_task()
287 session->cond->lock(); in process_task()
288 session->task_done++; in process_task()
289 session->cond->signal(); in process_task()
290 session->cond->unlock(); in process_task()
291 if (session->ctx && session->ctx->dev_cb) in process_task()
292 mpp_callback(session->ctx->dev_cb, NULL); in process_task()
400 session = task->session; in process_task()
401 mpp_assert(session); in process_task()
402 mpp_assert(session->ctx); in process_task()
406 bat_cmd->client = session->client; in process_task()
443 batch->batch_id, task->batch_slot_id, session->client, in process_task()
466 MppDevSession *session = (MppDevSession *)ctx->serv_ctx; in send_task() local
468 if (NULL == session || NULL == session->server) { in send_task()
469 mpp_err_f("invalid ctx %p session %p send task\n", ctx, session); in send_task()
473 MppDevBatServ *server = session->server; in send_task()
476 session->cond->lock(); in send_task()
478 task = list_first_entry_or_null(&session->list_done, MppDevTask, link_session); in send_task()
485 list_add_tail(&task->link_session, &session->list_wait); in send_task()
487 session->task_wait++; in send_task()
488 session->cond->unlock(); in send_task()
496 session->client, task->slot_idx, server->pending_count); in send_task()
508 MppDevSession *session = (MppDevSession *)ctx->serv_ctx; in wait_task() local
511 if (NULL == session) { in wait_task()
516 task = list_first_entry_or_null(&session->list_wait, MppDevTask, link_session); in wait_task()
519 session->cond->lock(); in wait_task()
520 if (session->task_wait != session->task_done) { in wait_task()
521 mpp_serv_dbg_flow("session %d wait %d start %d:%d\n", session->client, in wait_task()
522 task->task_id, session->task_wait, session->task_done); in wait_task()
523 session->cond->wait(); in wait_task()
525 mpp_serv_dbg_flow("session %d wait %d done %d:%d\n", session->client, in wait_task()
526 task->task_id, session->task_wait, session->task_done); in wait_task()
527 session->cond->unlock(); in wait_task()
530 list_add_tail(&task->link_session, &session->list_done); in wait_task()
532 mpp_assert(session->task_wait == session->task_done); in wait_task()
803 MppDevSession *session = (MppDevSession *)mpp_mem_pool_get(mSessionPool); in attach() local
804 INIT_LIST_HEAD(&session->list_server); in attach()
805 INIT_LIST_HEAD(&session->list_wait); in attach()
806 INIT_LIST_HEAD(&session->list_done); in attach()
808 session->ctx = ctx; in attach()
809 session->server = server; in attach()
810 session->client = ctx->client; in attach()
811 session->cond = new MppMutexCond(); in attach()
812 session->task_wait = 0; in attach()
813 session->task_done = 0; in attach()
815 for (i = 0; i < MPP_ARRAY_ELEMS(session->tasks); i++) { in attach()
816 MppDevTask *task = &session->tasks[i]; in attach()
821 task->session = session; in attach()
826 list_add_tail(&task->link_session, &session->list_done); in attach()
829 list_add_tail(&session->list_server, &server->session_list); in attach()
830 ctx->serv_ctx = session; in attach()
856 MppDevSession *session = (MppDevSession *)ctx->serv_ctx; in detach() local
869 mpp_assert(session); in detach()
870 mpp_assert(session->client == ctx->client); in detach()
871 mpp_assert(session->task_wait == session->task_done); in detach()
872 mpp_assert(list_empty(&session->list_wait)); in detach()
874 list_del_init(&session->list_server); in detach()
876 if (session->cond) { in detach()
877 delete session->cond; in detach()
878 session->cond = NULL; in detach()
881 mpp_mem_pool_put(mSessionPool, session); in detach()