package caqti
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Unified interface to relational database libraries
Install
dune-project
Dependency
Authors
Maintainers
Sources
caqti-v2.3.2.tbz
sha256=8f6c1724b59ac22a5c657c9e53b9a1706e39ecd462e82958b0cea88e43f0aba7
sha512=75b968ab37ae94cadcaabbcce0f91b1ffa4334ed69e441bdeb823077eb7675264282efb0fab3baaaad446582cfb427769e19f22c8c194a316ac2248c3fba5cf8
doc/src/caqti/caqti_switch_sig.ml.html
Source file caqti_switch_sig.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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67(* Copyright (C) 2023--2025 Petter A. Urkedal <paurkedal@gmail.com> * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your * option) any later version, with the LGPL-3.0 Linking Exception. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * and the LGPL-3.0 Linking Exception along with this library. If not, see * <http://www.gnu.org/licenses/> and <https://spdx.org>, respectively. *) (** Switch implementation used where not available. A switch provides scoped release of resources. The signature here is provided on platforms where we don't use its native implementation, either because it does not exist or lacks functionality on which we rely. *) module type S = sig type 'a fiber type t type hook exception Off (** {1 Explicit Construction and Release} The following functions are resource-unsafe, since do not scope the lifetime of constructed switches to a function call like {!run}. They are nevertheless useful for applications which do not follow the EIO-style resource handling discipline. The [caqti-eio] package uses the native EIO switch implementation, which excludes these functions. *) val eternal : t (** A switch which is never released. *) val create : unit -> t (** Create a fresh releasable switch which is initially on. *) val release : t -> unit fiber (** [release sw] calls all cleanup handlers on [sw] in reverse order of registration and marks the switch as being off. *) (** {1 EIO-Compatible Interface} *) val run : (t -> 'a fiber) -> 'a fiber (** [run f] calls [f] with a fresh switch which will be released upon exit or in case of failure. *) val check : t -> unit (** [check sw] raises [Off] if [sw] has been turned off. *) val on_release_cancellable : t -> (unit -> unit fiber) -> hook (** [on_release_cancellable sw f] registers [f] to be called upon the evetual release of [sw] unless {!remove_hook} is called on the returned hook before that happen. *) val remove_hook : hook -> unit (** Given a [hook] returned by {!on_release_cancellable}, [remove_hook hook] cancels the cleanup registered by that call. *) end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>