package miaou-core

  1. Overview
  2. Docs
Miaou core/widgets (no drivers, no SDL)

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.5.2.tar.gz
md5=60a3b9f181f24572a06a9492532bfdda
sha512=fcc35a275066be2900e6201782faf47503076fa4640f08cf78067835a6f447b74613009e55b2ac799adb7ca46f1bffa261fc5971753f2cc3c6bef327511c7ef6

doc/src/miaou-core.helpers/render_notify.ml.html

Source file render_notify.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(******************************************************************************)
(*                                                                            *)
(* SPDX-License-Identifier: MIT                                               *)
(* Copyright (c) 2025 Nomadic Labs <contact@nomadic-labs.com>                 *)
(*                                                                            *)
(******************************************************************************)

(* Global render notification system.

   Widgets can call [request_render] to schedule a re-render.
   The driver checks [should_render] periodically and performs the render.

   This is useful for widgets that need to update after a delay
   (e.g., debounced validation, animations, timers).
*)

let pending = Atomic.make false

let request_render () = Atomic.set pending true

let should_render () =
  (* Use atomic exchange to avoid race condition where multiple
     request_render calls between get and set could be lost *)
  Atomic.exchange pending false

let clear () = Atomic.set pending false