64 lines
4.8 KiB
Plaintext
64 lines
4.8 KiB
Plaintext
|
{{page>index}}
|
||
|
-------
|
||
|
===== Main Loop =====
|
||
|
|
||
|
The EFL is event-driven. This means that the application polls for data, and
|
||
|
listens for events to interact with it.
|
||
|
|
||
|
The Ecore library provides the main loop abstraction. It gets data when data
|
||
|
is available and sends the events so that costly polling threads are not
|
||
|
needed. Ecore manages polling, timers, events, and file descriptors. When
|
||
|
there is no ongoing event, the main loop automatically enters an idle mode,
|
||
|
minimizing the power consumption. The loop wakes up when needed.
|
||
|
|
||
|
=== Table of Contents ===
|
||
|
|
||
|
* [[/program_guide/main_loop/timers|Timers]]
|
||
|
* [[/program_guide/main_loop/timers#To_create_and_destroy_a_timer|To create and destroy a timer]]
|
||
|
* [[/program_guide/main_loop/timers#To_create_a_timer|To create a timer]]
|
||
|
* [[/program_guide/main_loop/timers#To_delete_the_timer|To delete the timer]]
|
||
|
* [[/program_guide/main_loop/timers#To_manage_a_timer|To manage a timer]]
|
||
|
* [[/program_guide/main_loop/timers#To_change_the_timer's_interval|To change the timer's interval]]
|
||
|
* [[/program_guide/main_loop/timers#To_get_the_timer's_pending_time|To get the timer's pending time]]
|
||
|
* [[/program_guide/main_loop/timers#To_delay_the_timer's_next_occurrence|To delay the timer's next occurrence]]
|
||
|
* [[/program_guide/main_loop/timers#To_pause_the_currently_running_timer|To pause the currently running timer]]
|
||
|
* [[/program_guide/main_loop/timers#To_query_the_current_value_of_the_defined_timer_infrastructure_precision|To query the current value of the defined timer infrastructure precision]]
|
||
|
* [[/program_guide/main_loop/animators|Animators]]
|
||
|
* [[/program_guide/main_loop/animators#Forever-running_Animator|Forever-running Animator]]
|
||
|
* [[/program_guide/main_loop/animators#Specific-duration_Animator|Specific-duration Animator]]
|
||
|
* [[/program_guide/main_loop/animators#To_create_and_destroy_the_animator|To create and destroy the animator]]
|
||
|
* [[/program_guide/main_loop/animators#To_create_the_animator|To create the animator]]
|
||
|
* [[/program_guide/main_loop/animators#To_destroy_the_animator|To destroy the animator]]
|
||
|
* [[/program_guide/main_loop/animators#To_manage_the_animator|To manage the animator]]
|
||
|
* [[/program_guide/main_loop/animators#To_pause_the_currently_running_animator|To pause the currently running animator]]
|
||
|
* [[/program_guide/main_loop/animators#To_query_Ecore_for_the_interval_between_2_animator_calls|To query Ecore for the interval between 2 animator calls]]
|
||
|
* [[/program_guide/main_loop/animators#To_change_the_interval|To change the interval]]
|
||
|
* [[/program_guide/main_loop/file_descriptors|File Descriptors]]
|
||
|
* [[/program_guide/main_loop/file_descriptors#To_manage_the_file_descriptors|To manage the file descriptors]]
|
||
|
* [[/program_guide/main_loop/file_descriptors#To_set_a_callback|To set a callback]]
|
||
|
* [[/program_guide/main_loop/file_descriptors#To_listen_to_events|To listen to events]]
|
||
|
* [[/program_guide/main_loop/file_descriptors#To_wait_for_incoming_data_on_the_file_descriptor|To wait for incoming data on the file descriptor]]
|
||
|
* [[/program_guide/main_loop/file_descriptors#To_delete_a_file_descriptor_handler|To delete a file descriptor handler]]
|
||
|
* [[/program_guide/main_loop/file_descriptors#To_get_the_handler's_file_descriptor|To get the handler's file descriptor]]
|
||
|
* [[/program_guide/main_loop/file_descriptors#To_select_whether_a_flag_is_active_on_a_handler|To select whether a flag is active on a handler]]
|
||
|
* [[/program_guide/main_loop/file_descriptors#To_change_the_flags_the_handler_is_monitoring|To change the flags the handler is monitoring]]
|
||
|
* [[/program_guide/main_loop/threads|Threads]]
|
||
|
* [[/program_guide/main_loop/threads#To_manage_threads|To manage threads]]
|
||
|
* [[/program_guide/main_loop/threads#To_cancel_a_thread|To cancel a thread]]
|
||
|
* [[/program_guide/main_loop/threads#To_execute_a_thread_later|To execute a thread later]]
|
||
|
* [[/program_guide/main_loop/threads#To_get_the_maximum_number_of_concurrent_threads|To get the maximum number of concurrent threads]]
|
||
|
* [[/program_guide/main_loop/threads#To_query_the_number_of_active_threads|To query the number of active threads]]
|
||
|
* [[/program_guide/main_loop/idlers|Idlers]]
|
||
|
* [[/program_guide/main_loop/idlers#To_manage_the_idlers|To manage the idlers]]
|
||
|
* [[/program_guide/main_loop/idlers#To_add_an_idler|To add an idler]]
|
||
|
* [[/program_guide/main_loop/idlers#To_delete_an_idler|To delete an idler]]
|
||
|
* [[/program_guide/main_loop/idlers#To_add_and_delete_idle_exiters|To add and delete idle exiters]]
|
||
|
* [[/program_guide/main_loop/idlers#To_add_and_delete_idle_enterers|To add and delete idle enterers]]
|
||
|
|
||
|
=== Related Info ===
|
||
|
|
||
|
* [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Main__Loop__Group.html|Ecore Main Loop API]]
|
||
|
|
||
|
-----
|
||
|
{{page>index}}
|