Lines Matching refs:event_loop

96 static void s_destroy(struct aws_event_loop *event_loop);
97 static int s_run(struct aws_event_loop *event_loop);
98 static int s_stop(struct aws_event_loop *event_loop);
99 static int s_wait_for_stop_completion(struct aws_event_loop *event_loop);
100 static void s_schedule_task_now(struct aws_event_loop *event_loop, struct aws_task *task);
101 static void s_schedule_task_future(struct aws_event_loop *event_loop, struct aws_task *task, uint64…
102 static void s_cancel_task(struct aws_event_loop *event_loop, struct aws_task *task);
103 static int s_connect_to_io_completion_port(struct aws_event_loop *event_loop, struct aws_io_handle …
104 static bool s_is_event_thread(struct aws_event_loop *event_loop);
105 static int s_unsubscribe_from_io_events(struct aws_event_loop *event_loop, struct aws_io_handle *ha…
166 struct aws_event_loop *event_loop = NULL; in aws_event_loop_new_default_with_options() local
174 event_loop = aws_mem_acquire(alloc, sizeof(struct aws_event_loop)); in aws_event_loop_new_default_with_options()
175 if (!event_loop) { in aws_event_loop_new_default_with_options()
179 … AWS_LOGF_INFO(AWS_LS_IO_EVENT_LOOP, "id=%p: Initializing IO Completion Port", (void *)event_loop); in aws_event_loop_new_default_with_options()
180 err = aws_event_loop_init_base(event_loop, alloc, options->clock); in aws_event_loop_new_default_with_options()
209 (void *)event_loop, in aws_event_loop_new_default_with_options()
236 event_loop->impl_data = impl; in aws_event_loop_new_default_with_options()
238 event_loop->vtable = &s_iocp_vtable; in aws_event_loop_new_default_with_options()
240 return event_loop; in aws_event_loop_new_default_with_options()
265 aws_event_loop_clean_up_base(event_loop); in aws_event_loop_new_default_with_options()
268 if (event_loop) { in aws_event_loop_new_default_with_options()
269 aws_mem_release(alloc, event_loop); in aws_event_loop_new_default_with_options()
276 static void s_destroy(struct aws_event_loop *event_loop) { in s_destroy() argument
277 AWS_LOGF_TRACE(AWS_LS_IO_EVENT_LOOP, "id=%p: destroying event-loop", (void *)event_loop); in s_destroy()
279 struct iocp_loop *impl = event_loop->impl_data; in s_destroy()
283 aws_event_loop_stop(event_loop); in s_destroy()
284 int err = aws_event_loop_wait_for_stop_completion(event_loop); in s_destroy()
289 (void *)event_loop); in s_destroy()
317 aws_mem_release(event_loop->alloc, impl); in s_destroy()
318 aws_event_loop_clean_up_base(event_loop); in s_destroy()
319 aws_mem_release(event_loop->alloc, event_loop); in s_destroy()
325 static void s_signal_synced_data_changed(struct aws_event_loop *event_loop) { in s_signal_synced_data_changed() argument
326 struct iocp_loop *impl = event_loop->impl_data; in s_signal_synced_data_changed()
329 …ACE(AWS_LS_IO_EVENT_LOOP, "id=%p: notified of cross-thread tasks to schedule", (void *)event_loop); in s_signal_synced_data_changed()
341 static int s_run(struct aws_event_loop *event_loop) { in s_run() argument
342 struct iocp_loop *impl = event_loop->impl_data; in s_run()
352 AWS_LOGF_INFO(AWS_LS_IO_EVENT_LOOP, "id=%p: Starting event-loop thread.", (void *)event_loop); in s_run()
354 …int err = aws_thread_launch(&impl->thread_created_on, s_event_thread_main, event_loop, &impl->thre… in s_run()
357 AWS_LOGF_FATAL(AWS_LS_IO_EVENT_LOOP, "id=%p: thread creation failed.", (void *)event_loop); in s_run()
369 static int s_stop(struct aws_event_loop *event_loop) { in s_stop() argument
370 struct iocp_loop *impl = event_loop->impl_data; in s_stop()
374 AWS_LOGF_INFO(AWS_LS_IO_EVENT_LOOP, "id=%p: Stopping event-loop thread.", (void *)event_loop); in s_stop()
386 s_signal_synced_data_changed(event_loop); in s_stop()
393 static int s_wait_for_stop_completion(struct aws_event_loop *event_loop) { in s_wait_for_stop_completion() argument
394 struct iocp_loop *impl = event_loop->impl_data; in s_wait_for_stop_completion()
421 static void s_schedule_task_common(struct aws_event_loop *event_loop, struct aws_task *task, uint64… in s_schedule_task_common() argument
422 struct iocp_loop *impl = event_loop->impl_data; in s_schedule_task_common()
427 if (s_is_event_thread(event_loop)) { in s_schedule_task_common()
431 (void *)event_loop, in s_schedule_task_common()
445 (void *)event_loop, in s_schedule_task_common()
458 … AWS_LOGF_TRACE(AWS_LS_IO_EVENT_LOOP, "id=%p: Waking up event-loop thread", (void *)event_loop); in s_schedule_task_common()
467 s_signal_synced_data_changed(event_loop); in s_schedule_task_common()
472 static void s_schedule_task_now(struct aws_event_loop *event_loop, struct aws_task *task) { in s_schedule_task_now() argument
473 s_schedule_task_common(event_loop, task, 0 /* use zero to denote it's a "now" task */); in s_schedule_task_now()
477 static void s_schedule_task_future(struct aws_event_loop *event_loop, struct aws_task *task, uint64… in s_schedule_task_future() argument
478 s_schedule_task_common(event_loop, task, run_at_nanos); in s_schedule_task_future()
481 static void s_cancel_task(struct aws_event_loop *event_loop, struct aws_task *task) { in s_cancel_task() argument
482 …AWS_LOGF_TRACE(AWS_LS_IO_EVENT_LOOP, "id=%p: cancelling task %p", (void *)event_loop, (void *)task… in s_cancel_task()
483 struct iocp_loop *iocp_loop = event_loop->impl_data; in s_cancel_task()
488 static bool s_is_event_thread(struct aws_event_loop *event_loop) { in s_is_event_thread() argument
489 struct iocp_loop *impl = event_loop->impl_data; in s_is_event_thread()
497 static int s_connect_to_io_completion_port(struct aws_event_loop *event_loop, struct aws_io_handle … in s_connect_to_io_completion_port() argument
498 struct iocp_loop *impl = event_loop->impl_data; in s_connect_to_io_completion_port()
505 (void *)event_loop, in s_connect_to_io_completion_port()
539 (void *)event_loop, in s_connect_to_io_completion_port()
556 static void s_process_tasks_to_schedule(struct aws_event_loop *event_loop, struct aws_linked_list *… in s_process_tasks_to_schedule() argument
557 struct iocp_loop *impl = event_loop->impl_data; in s_process_tasks_to_schedule()
574 static void s_process_synced_data(struct aws_event_loop *event_loop) { in s_process_synced_data() argument
575 struct iocp_loop *impl = event_loop->impl_data; in s_process_synced_data()
597 …ACE(AWS_LS_IO_EVENT_LOOP, "id=%p: notified of cross-thread tasks to schedule", (void *)event_loop); in s_process_synced_data()
598 s_process_tasks_to_schedule(event_loop, &tasks_to_schedule); in s_process_synced_data()
601 static int s_unsubscribe_from_io_events(struct aws_event_loop *event_loop, struct aws_io_handle *ha… in s_unsubscribe_from_io_events() argument
602 (void)event_loop; in s_unsubscribe_from_io_events()
606 (void *)event_loop, in s_unsubscribe_from_io_events()
630 (void *)event_loop, in s_unsubscribe_from_io_events()
642 struct aws_event_loop *event_loop = user_data; in s_event_thread_main() local
643 AWS_LOGF_INFO(AWS_LS_IO_EVENT_LOOP, "id=%p: main loop started", (void *)event_loop); in s_event_thread_main()
645 struct iocp_loop *impl = event_loop->impl_data; in s_event_thread_main()
658 …AWS_LOGF_INFO(AWS_LS_IO_EVENT_LOOP, "id=%p: default timeout %d", (void *)event_loop, (int)timeout_… in s_event_thread_main()
663 …ACE(AWS_LS_IO_EVENT_LOOP, "id=%p: waiting for a maximum of %d ms", (void *)event_loop, timeout_ms); in s_event_thread_main()
672 aws_event_loop_register_tick_start(event_loop); in s_event_thread_main()
678 (void *)event_loop, in s_event_thread_main()
695 … AWS_LOGF_TRACE(AWS_LS_IO_EVENT_LOOP, "id=%p: invoking handler.", (void *)event_loop); in s_event_thread_main()
697 event_loop, in s_event_thread_main()
711 s_process_synced_data(event_loop); in s_event_thread_main()
716event_loop->clock(&now_ns); /* If clock fails, now_ns will be 0 and tasks scheduled for a specific… in s_event_thread_main()
718 AWS_LOGF_TRACE(AWS_LS_IO_EVENT_LOOP, "id=%p: running scheduled tasks.", (void *)event_loop); in s_event_thread_main()
725 int err = event_loop->clock(&now_ns); in s_event_thread_main()
737 …AWS_LS_IO_EVENT_LOOP, "id=%p: no more scheduled tasks using default timeout.", (void *)event_loop); in s_event_thread_main()
748 (void *)event_loop, in s_event_thread_main()
753 aws_event_loop_register_tick_end(event_loop); in s_event_thread_main()
755 AWS_LOGF_DEBUG(AWS_LS_IO_EVENT_LOOP, "id=%p: exiting main loop", (void *)event_loop); in s_event_thread_main()