Module Lwt_mvar
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
- Add the following to your project's - dependencies/CMakeLists.txt:- DkSDKProject_DeclareAvailable(lwt CONSTRAINT "= 5.6.1" FINDLIBS lwt lwt.unix) DkSDKProject_MakeAvailable(lwt)
- Add the - Findlib::lwtlibrary to any desired targets in- src/*/CMakeLists.txt:- target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::lwt)
- Click your IDE's - Buildbutton
Not using DkSDK?
FIRST, do one or all of the following:
- Run: - opam install lwt.5.6.1
- Edit your - dune-projectand add:- (package (name YourExistingPackage) (depends ; ... existing dependenices ... (lwt (>= 5.6.1))))- Then run: - dune build *.opam # if this fails, run: dune build
- Edit your - <package>.opamfile and add:- depends: [ # ... existing dependencies ... "lwt" {>= "5.6.1"} ]- Then run: - opam install . --deps-only
FINALLY, add the lwt library to any desired (library)and/or (executable) targets in your **/dune files:
(library
  (name YourLibrary)
  ; ... existing library options ...
  (libraries
    ; ... existing libraries ...
    lwt))
(executable
  (name YourExecutable)
  ; ... existing executable options ...
  (libraries
    ; ... existing libraries ...
    lwt))“Mailbox” variables implement a synchronising variable, used for communication between concurrent threads.
type``'a t
The type of a mailbox variable. Mailbox variables are used to
communicate values between threads in a synchronous way. The type
parameter specifies the type of the value propagated from put to
take.
valcreate :'a->'at
create v creates a new mailbox variable containing value v.
valcreate_empty : ``unit->'at
create () creates a new empty mailbox variable.
put mvar value puts a value into a mailbox variable. This value will
remain in the mailbox until take is called to remove it. If the
mailbox is not empty, the current thread will block until it is emptied.
take mvar will take any currently available value from the mailbox
variable. If no value is currently available, the current thread will
block, awaiting a value to be put by another thread.
valtake_available :'at->'aoption
take_available mvar immediately takes the value from mvar without
blocking, returning None if the mailbox is empty.
- since 3.2.0
valis_empty :'at->bool
is_empty mvar indicates if put mvar can be called without blocking.
- since 3.2.0
