package luv
Binding to libuv: cross-platform asynchronous I/O
Install
Dune Dependency
Authors
Maintainers
Sources
luv-0.5.6.tar.gz
sha256=35d8092d7a7e8d00a7ab8caf79d99e2073baf1999f5b9274de4d69078ad83685
md5=fb78fd1b179f5c9585e79b5a1c5ff644
doc/src/luv/thread.ml.html
Source file thread.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
(* This file is part of Luv, released under the MIT license. See LICENSE.md for details, or visit https://github.com/aantron/luv/blob/master/LICENSE.md. *) type t = C.Types.Thread.t Ctypes.ptr let self () = Ctypes.addr (C.Functions.Thread.self ()) let equal = C.Functions.Thread.equal let thread_trampoline = C.Functions.Thread.get_trampoline () let make_thread_options stack_size = let module O = C.Types.Thread.Options in let options = Ctypes.make O.t in begin match stack_size with | None -> Ctypes.setf options O.flags O.no_flags | Some n -> Ctypes.setf options O.flags O.has_stack_size; Ctypes.setf options O.stack_size (Unsigned.Size_t.of_int n) end; Ctypes.addr options let create ?stack_size f = let thread = Ctypes.addr (Ctypes.make C.Types.Thread.t) in let f = Error.catch_exceptions f in let f_gc_root = Ctypes.Root.create f in let result = C.Functions.Thread.create thread (make_thread_options stack_size) thread_trampoline f_gc_root in if result < 0 then begin Ctypes.Root.release f_gc_root; Error.result_from_c result end else Result.Ok thread let create_c ?stack_size ?(argument = Nativeint.zero) f = let thread = Ctypes.addr (Ctypes.make C.Types.Thread.t) in C.Functions.Thread.create_c thread (make_thread_options stack_size) f argument |> Error.to_result thread let join thread = C.Blocking.Thread.join thread |> Error.to_result ()
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>