Lines Matching refs:task

83 use std::task::{Context, Poll, Waker};
237 pub fn spawn(&mut self, task: impl AccessorTask<T, D>) -> JoinHandle in spawn()
247 .spawn_with_accessor(accessor, task) in spawn()
513 pub fn spawn(&self, task: impl AccessorTask<T, D>) -> JoinHandle in spawn()
518 self.with(|mut access| access.as_context_mut().spawn_with_accessor(accessor, task)) in spawn()
671 .get_mut(self.thread.task)? in is_ready()
749 let task = state.current_host_thread()?; in poll_and_block() localVariable
758 let host_state = &mut state.get_mut(task)?.state; in poll_and_block()
762 Waitable::Host(task).set_event( in poll_and_block()
794 let caller = state.get_mut(task)?.caller; in poll_and_block()
796 Waitable::Host(task).join(state, Some(set))?; in poll_and_block()
807 Waitable::Host(task).join(store.concurrent_state_mut(), None)?; in poll_and_block()
812 let host_state = &mut store.concurrent_state_mut().get_mut(task)?.state; in poll_and_block()
829 match instance.get_event(store, call.thread.task, set, true)? { in handle_guest_call()
834 let task = state.get_mut(call.thread.task)?; in handle_guest_call() localVariable
835 let runtime_instance = task.instance; in handle_guest_call()
853 .get_mut(call.thread.task)? in handle_guest_call()
864 .get_mut(call.thread.task)? in handle_guest_call()
918 pub fn spawn(&mut self, task: impl AccessorTask<T, HasSelf<T>>) -> JoinHandle in spawn()
922 self.as_context_mut().spawn(task) in spawn()
980 pub fn spawn(mut self, task: impl AccessorTask<T>) -> JoinHandle in spawn()
985 self.spawn_with_accessor(accessor, task) in spawn()
993 task: impl AccessorTask<T, D>, in spawn_with_accessor()
1002 let (handle, future) = JoinHandle::run(async move { task.run(&accessor).await }); in spawn_with_accessor()
1358 let task = state.get_mut(call.thread.task)?; in handle_work_item() localVariable
1359 if !task.starting_sent { in handle_work_item()
1360 task.starting_sent = true; in handle_work_item()
1362 Waitable::Guest(call.thread.task).set_event( in handle_work_item()
1371 let instance = state.get_mut(call.thread.task)?.instance; in handle_work_item()
1459 Some(state.get_mut(thread.task)?.instance) in enter_guest_sync_call()
1466 let task = GuestTask::new( in enter_guest_sync_call() localVariable
1488 let guest_task = state.push(task)?; in enter_guest_sync_call()
1501 task: guest_task, in enter_guest_sync_call()
1517 let instance = self.concurrent_state_mut().get_mut(thread.task)?.instance; in exit_guest_sync_call()
1526 let task = state.get_mut(thread.task)?; in exit_guest_sync_call() localVariable
1527 let caller = match &task.caller { in exit_guest_sync_call()
1534 let task = state.get_mut(thread.task)?; in exit_guest_sync_call() localVariable
1535 if task.ready_to_delete() { in exit_guest_sync_call()
1536 state.delete(thread.task)?.dispose(state)?; in exit_guest_sync_call()
1556 let task = state.push(HostTask::new(caller, HostTaskState::CalleeStarted))?; in host_task_create() localVariable
1558 self.set_thread(task)?; in host_task_create()
1559 Ok(Some(task)) in host_task_create()
1571 let task = self.concurrent_state_mut().current_host_thread()?; in host_task_reenter_caller() localVariable
1572 let caller = self.concurrent_state_mut().get_mut(task)?.caller; in host_task_reenter_caller()
1583 pub(crate) fn host_task_delete(&mut self, task: Option<TableId<HostTask>>) -> Result<()> { in host_task_delete()
1584 match task { in host_task_delete()
1585 Some(task) => { in host_task_delete()
1587 self.concurrent_state_mut().delete(task)?; in host_task_delete()
1616 let task = state.get_mut(thread.task)?; in may_enter() localVariable
1624 if task.instance.instance == instance.instance { in may_enter()
1627 cur = match task.caller { in may_enter()
1654 let instance = state.get_mut(old_thread.task)?.instance.instance; in set_thread()
1673 let instance = state.get_mut(guest_thread.task)?.instance.instance; in set_task_may_block()
1674 let may_block = self.concurrent_state_mut().may_block(guest_thread.task)?; in set_task_may_block()
1685 let task = state.current_guest_thread()?.task; in check_blocking() localVariable
1686 let instance = state.get_mut(task)?.instance.instance; in check_blocking()
1794 let instance = state.get_mut(thread.task)?.instance.index; in resume_fiber()
1826 let task = match &reason { in suspend() localVariable
1829 | SuspendReason::ExplicitlySuspending { thread, .. } => Some(thread.task), in suspend()
1833 let old_guest_thread = if task.is_some() { in suspend()
1859 .map(|thread| self.concurrent_state_mut().may_block(thread.task)) in suspend()
1870 if task.is_some() { in suspend()
1977 let task = store.concurrent_state_mut().get_mut(guest_thread.task)?; in handle_callback_code() localVariable
1978 if task.threads.is_empty() && !task.returned_or_cancelled() { in handle_callback_code()
1981 if let Caller::Guest { .. } = task.caller { in handle_callback_code()
1982 task.exited = true; in handle_callback_code()
1983 task.callback = None; in handle_callback_code()
1985 if task.ready_to_delete() { in handle_callback_code()
1986 Waitable::Guest(guest_thread.task).delete_from(store.concurrent_state_mut())?; in handle_callback_code()
1991 let task = state.get_mut(guest_thread.task)?; in handle_callback_code() localVariable
1996 if let Some(event) = task.event { in handle_callback_code()
1999 task.event = Some(Event::None); in handle_callback_code()
2008 if state.may_block(guest_thread.task)? { in handle_callback_code()
2023 state.check_blocking_for(guest_thread.task)?; in handle_callback_code()
2028 if state.get_mut(guest_thread.task)?.event.is_some() in handle_callback_code()
2105 let task = store.concurrent_state_mut().get_mut(guest_thread.task)?; in cleanup_thread() localVariable
2106 task.threads.remove(&guest_thread.thread); in cleanup_thread()
2160 let task = store.concurrent_state_mut().get_mut(guest_thread.task)?; in queue_call() localVariable
2161 let lower = match task.lower_params.take() { in queue_call()
2204 .get_mut(guest_thread.task)? in queue_call()
2277 let task = store.concurrent_state_mut().get_mut(guest_thread.task)?; in queue_call() localVariable
2278 if task.threads.len() == 1 && !task.returned_or_cancelled() { in queue_call()
2291 if !state.get_mut(guest_thread.task)?.result.is_none() { in queue_call()
2295 match state.get_mut(guest_thread.task)?.lift_result.take() { in queue_call()
2326 self.task_complete(store, guest_thread.task, result, Status::Returned)?; in queue_call()
2335 let task = state.get_mut(guest_thread.task)?; in queue_call() localVariable
2337 match &task.caller { in queue_call()
2339 if task.ready_to_delete() { in queue_call()
2340 Waitable::Guest(guest_thread.task).delete_from(state)?; in queue_call()
2344 task.exited = true; in queue_call()
2442 state.get_mut(old_thread.task)?.instance, in prepare_call()
2493 Waitable::Guest(state.current_guest_thread()?.task).set_event( in prepare_call()
2539 state.get_mut(thread.task)?.sync_result = SyncResult::Produced( in prepare_call()
2574 task: guest_task, in prepare_call()
2642 let callee_async = state.get_mut(guest_thread.task)?.async_function; in start_call()
2649 let task = state.get_mut(guest_thread.task)?; in start_call() localVariable
2655 task.callback = Some(Box::new(move |store, event, handle| { in start_call()
2661 let Caller::Guest { thread: caller } = &task.caller else { in start_call()
2667 let caller_instance = state.get_mut(caller.task)?.instance; in start_call()
2687 let guest_waitable = Waitable::Guest(guest_thread.task); in start_call()
2723 log::trace!("taking event for {:?}", guest_thread.task); in start_call()
2729 log::trace!("status {status:?} for {:?}", guest_thread.task); in start_call()
2742 .subtask_insert_guest(guest_thread.task.rep())?; in start_call()
2746 .get_mut(guest_thread.task)? in start_call()
2769 let task = state.get_mut(guest_thread.task)?; in start_call() localVariable
2770 if let Some(result) = task.sync_result.take()? { in start_call()
2775 if task.exited && task.ready_to_delete() { in start_call()
2776 Waitable::Guest(guest_thread.task).delete_from(state)?; in start_call()
2804 let task = state.current_host_thread()?; in first_poll() localVariable
2810 let state = &mut state.get_mut(task)?.state; in first_poll()
2856 let old = store.0.set_thread(task)?; in first_poll()
2866 match &mut state.get_mut(task)?.state { in first_poll()
2874 Waitable::Host(task).set_event(state, Some(Event::Subtask { status }))?; in first_poll()
2898 let caller = state.get_mut(task)?.caller; in first_poll()
2899 let instance = state.get_mut(caller.task)?.instance; in first_poll()
2904 .subtask_insert_host(task.rep())?; in first_poll()
2905 store.0.concurrent_state_mut().get_mut(task)?.common.handle = Some(handle); in first_poll()
2927 .get_mut(guest_thread.task)? in task_return()
2931 if !state.get_mut(guest_thread.task)?.result.is_none() { in task_return()
2965 self.task_complete(store, guest_thread.task, result, Status::Returned) in task_return()
2972 let task = state.get_mut(guest_thread.task)?; in task_cancel() localVariable
2973 if !task.cancel_sent { in task_cancel()
2976 _ = task in task_cancel()
2981 if !task.result.is_none() { in task_cancel()
2989 guest_thread.task, in task_cancel()
3012 let task = state.get_mut(guest_task)?; in task_complete() localVariable
3014 if let Caller::Host { tx, .. } = &mut task.caller { in task_complete()
3019 task.result = Some(result); in task_complete()
3121 let task = concurrent_state.get_mut(id)?; in subtask_drop() localVariable
3122 match &task.state { in subtask_drop()
3129 (Waitable::Host(id), task.caller, true) in subtask_drop()
3132 let task = concurrent_state.get_mut(id)?; in subtask_drop() localVariable
3133 if task.lift_result.is_some() { in subtask_drop()
3136 if let Caller::Guest { thread } = task.caller { in subtask_drop()
3291 let task = state.get_mut(guest_thread.task)?; in thread_new_indirect() localVariable
3292 if task.threads.is_empty() && !task.returned_or_cancelled() { in thread_new_indirect()
3300 if state.get_mut(guest_thread.task)?.ready_to_delete() { in thread_new_indirect()
3301 Waitable::Guest(guest_thread.task).delete_from(state)?; in thread_new_indirect()
3311 let parent_task = current_thread.task; in thread_new_indirect()
3408 if !state.may_block(guest_thread.task)? { in suspension_intrinsic()
3479 let task = state.get_mut(guest_thread.task)?; in waitable_check() localVariable
3487 if (task.event.is_none() in waitable_check()
3488 || (matches!(task.event, Some(Event::Cancelled)) && !cancellable)) in waitable_check()
3517 let event = self.get_event(store, guest_thread.task, Some(params.set), cancellable)?; in waitable_check()
3537 guest_thread.task, in waitable_check()
3636 let task = concurrent_state.get_mut(guest_task)?; in subtask_cancel() localVariable
3637 if !task.already_lowered_parameters() { in subtask_cancel()
3641 task.lower_params = None; in subtask_cancel()
3642 task.lift_result = None; in subtask_cancel()
3643 task.exited = true; in subtask_cancel()
3645 let instance = task.instance; in subtask_cancel()
3647 assert_eq!(1, task.threads.len()); in subtask_cancel()
3648 let thread = mem::take(&mut task.threads).into_iter().next().unwrap(); in subtask_cancel()
3656 pending.retain(|thread, _| thread.task != guest_task); in subtask_cancel()
3662 } else if !task.returned_or_cancelled() { in subtask_cancel()
3665 task.cancel_sent = true; in subtask_cancel()
3670 task.event = Some(Event::Cancelled); in subtask_cancel()
3671 let runtime_instance = task.instance.index; in subtask_cancel()
3672 for thread in task.threads.clone() { in subtask_cancel()
3674 task: guest_task, in subtask_cancel()
4329 task: TableId<GuestTask>, field
4339 task: state.get_mut(thread)?.parent_task, in qualify()
4348 .field(&self.task.rep()) in fmt()
4725 state.get_mut(thread.task)?.instance.index, in mark_ready()
4744 Self::Host(task) => { in delete_from()
4746 state.delete(*task)?; in delete_from()
4748 Self::Guest(task) => { in delete_from()
4750 state.delete(*task)?.dispose(state)?; in delete_from()
4752 Self::Transmit(task) => { in delete_from()
4753 state.delete(*task)?; in delete_from()
5127 if let Some(event) = self.get_mut(thread.task)?.event.take() { in take_pending_cancellation()
5135 fn check_blocking_for(&mut self, task: TableId<GuestTask>) -> Result<()> { in check_blocking_for()
5136 if self.may_block(task)? { in check_blocking_for()
5143 fn may_block(&mut self, task: TableId<GuestTask>) -> Result<bool> { in may_block()
5144 let task = self.get_mut(task)?; in may_block() localVariable
5145 Ok(task.async_function || task.returned_or_cancelled()) in may_block()
5153 pub fn call_context(&mut self, task: u32) -> Result<&mut CallContext> { in call_context()
5154 let (task, is_host) = (task >> 1, task & 1 == 1); in call_context()
5156 let task: TableId<HostTask> = TableId::new(task); in call_context() localVariable
5157 Ok(&mut self.get_mut(task)?.call_context) in call_context()
5159 let task: TableId<GuestTask> = TableId::new(task); in call_context() localVariable
5160 Ok(&mut self.get_mut(task)?.call_context) in call_context()
5168 CurrentThread::Guest(id) => (id.task.rep(), false), in current_call_context_scope_id()
5302 task: self.thread.task, in task_id()
5309 task: TableId<GuestTask>, field
5319 let task = store.0.concurrent_state_mut().get_mut(self.task)?; in host_future_dropped() localVariable
5320 if !task.already_lowered_parameters() { in host_future_dropped()
5321 Waitable::Guest(self.task).delete_from(store.0.concurrent_state_mut())? in host_future_dropped()
5323 task.host_future_state = HostFutureState::Dropped; in host_future_dropped()
5324 if task.ready_to_delete() { in host_future_dropped()
5325 Waitable::Guest(self.task).delete_from(store.0.concurrent_state_mut())? in host_future_dropped()
5375 let task = GuestTask::new( in prepare_call() localVariable
5406 let task = state.push(task)?; in prepare_call() localVariable
5407 let new_thread = GuestThread::new_implicit(state, task)?; in prepare_call()
5409 state.get_mut(task)?.threads.insert(thread); in prepare_call()
5417 thread: QualifiedThreadId { task, thread }, in prepare_call()