Module Lwt_condition
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))Condition variables to synchronize between threads.
type``'a t
Condition variable type. The type parameter denotes the type of value propagated from notifier to waiter.
valcreate : ``unit->'at
create () creates a new condition variable.
valwait : ``?mutex:Lwt_mutex.t->'at->'aLwt.t
wait mutex condvar will cause the current thread to block, awaiting
notification for a condition variable, condvar. If provided, the
mutex must have been previously locked (within the scope of
Lwt_mutex.with_lock, for example) and is temporarily unlocked until
the condition is notified. Upon notification, mutex is re-locked
before wait returns and the thread's activity is resumed. When the
awaited condition is notified, the value parameter passed to signal is
returned.
valsignal :'at->'a->unit
signal condvar value notifies that a condition is ready. A single
waiting thread will be awoken and will receive the notification value
which will be returned from wait. Note that condition notification is
not "sticky", i.e. if there is no waiter when signal is called, the
notification will be missed and the value discarded.
valbroadcast :'at->'a->unit
broadcast condvar value notifies all waiting threads. Each will be
awoken in turn and will receive the same notification value.
valbroadcast_exn :'at->``exn->unit
broadcast_exn condvar exn fails all waiting threads with exception
exn.
- since 2.6.0
