Lines Matching full:lvgl
61 LVGL and Threads
64 LVGL is **not thread-safe**.
66 That means it is the programmer's responsibility to see that no LVGL function is
67 called while another LVGL call is in progress in another thread. This includes calls
71 Assuming the above is the case, it is safe to call LVGL functions in
81 LVGL manages many complex data structures, and those structures are "system
83 inconsistent state. A high percentage LVGL functions (functions that start with
87 return. For this reason, execution of each LVGL function must be allowed to complete
88 before any other LVGL function is started.
94 These two LVGL functions may be called from any thread:
100 The reason this is okay is that the LVGL data changed by them is :ref:`atomic <atomic>`.
103 LVGL functions, set a flag or other atomic value that your LVGL-calling thread
104 (or an :ref:`LVGL Timer <timer>` you create) can read from and take action.
111 For LVGL's time-related tasks to be reliable, the time updates via the Tick Interface
112 must be reliable and the Tick Value must appear :ref:`atomic <atomic>` to LVGL. See
124 so requires making LVGL calls to get that data (or change) shown.
126 Yet it still remains the programmer's responsibility to see that no LVGL function is
127 called while another LVGL call is in progress.
145 LVGL's data structures are a system resource that requires such protection.
148 LVGL resources (i.e. all LVGL function calls excluding the :ref:`exceptions
153 This ensures LVGL's data structures "appear" atomic_ (all threads using this data
156 Thread`_ is the only thread making LVGL calls (excluding the :ref:`exceptions
160 by another task or in an interrupt), the thread calling LVGL functions can read that
168 data to the thread calling LVGL functions is to pass a private copy of that data to
173 MUTEX to protect LVGL data structures.
200 If a MUTEX is used to protect LVGL data structures, that means *every* LVGL function
205 If your OS is integrated with LVGL (the macro :c:macro:`LV_USE_OS` has a value
213 If your OS is NOT integrated with LVGL, then these calls either return
234 /* You must always hold (lock) the MUTEX while calling LVGL functions. */