Lines Matching refs:cmd_thread
583 mm_camera_cmd_thread_t *cmd_thread =
587 mm_camera_cmd_thread_name(cmd_thread->threadName);
590 ret = cam_sem_wait(&cmd_thread->cmd_sem);
599 node = (mm_camera_cmdcb_t*)cam_queue_deq(&cmd_thread->cmd_queue);
611 if (NULL != cmd_thread->cb) {
612 cmd_thread->cb(node, cmd_thread->user_data);
621 node = (mm_camera_cmdcb_t*)cam_queue_deq(&cmd_thread->cmd_queue);
627 int32_t mm_camera_cmd_thread_launch(mm_camera_cmd_thread_t * cmd_thread,
633 cam_sem_init(&cmd_thread->cmd_sem, 0);
634 cam_sem_init(&cmd_thread->sync_sem, 0);
635 cam_queue_init(&cmd_thread->cmd_queue);
636 cmd_thread->cb = cb;
637 cmd_thread->user_data = user_data;
638 cmd_thread->is_active = TRUE;
641 pthread_create(&cmd_thread->cmd_pid,
644 (void *)cmd_thread);
658 int32_t mm_camera_cmd_thread_stop(mm_camera_cmd_thread_t * cmd_thread)
670 cam_queue_enq(&cmd_thread->cmd_queue, node);
671 cam_sem_post(&cmd_thread->cmd_sem);
674 if (pthread_join(cmd_thread->cmd_pid, NULL) != 0) {
680 int32_t mm_camera_cmd_thread_destroy(mm_camera_cmd_thread_t * cmd_thread)
683 cam_queue_deinit(&cmd_thread->cmd_queue);
684 cam_sem_destroy(&cmd_thread->cmd_sem);
685 cam_sem_destroy(&cmd_thread->sync_sem);
686 memset(cmd_thread, 0, sizeof(mm_camera_cmd_thread_t));
690 int32_t mm_camera_cmd_thread_release(mm_camera_cmd_thread_t * cmd_thread)
693 rc = mm_camera_cmd_thread_stop(cmd_thread);
695 rc = mm_camera_cmd_thread_destroy(cmd_thread);