Skip to content

Add Eio.Condition#277

Merged
talex5 merged 2 commits intoocaml-multicore:mainfrom
talex5:condition
Aug 11, 2022
Merged

Add Eio.Condition#277
talex5 merged 2 commits intoocaml-multicore:mainfrom
talex5:condition

Conversation

@talex5
Copy link
Copy Markdown
Collaborator

@talex5 talex5 commented Aug 11, 2022

This is an updated version of the conditions part of #210. The changes are:

  • The mutex is also unlocked on cancellation (like Lwt_condition does).
  • I split await ?mutex t into await_no_mutex t and await t mutex. This makes it harder to forget the mutex by accident, and looks more like the stdlib API.

/cc @TheLortex

Lucas Pluvinage and others added 2 commits August 10, 2022 22:29
If we're cancelled while waiting for a condition, we should still
take the lock again before returning (as Lwt does).

Also, make the `mutex` required on `await` and have a separate
`await_no_mutex` for that case. This is to make it harder to forget the
mutex if you need it.
@talex5 talex5 merged commit 5e7ad8e into ocaml-multicore:main Aug 11, 2022
@talex5 talex5 deleted the condition branch August 11, 2022 14:34
talex5 added a commit to talex5/opam-repository that referenced this pull request Aug 26, 2022
CHANGES:

New features:

- Add `Eio.Condition` (@TheLortex @talex5 ocaml-multicore/eio#277).
  Allows a fiber to wait for some condition to become true.

- Add `Eio.Net.getaddrinfo` and `getnameinfo` (@bikallem @talex5 ocaml-multicore/eio#278 ocaml-multicore/eio#288 ocaml-multicore/eio#291).
  Convert between host names and addresses.

- Add `Eio.Debug` (@talex5 ocaml-multicore/eio#276).
  Currently, this allows overriding the `traceln` function.

- `Buf_write.create`: make switch optional (@talex5 ocaml-multicore/eio#283).
  This makes things easier for people porting code from Faraday.

Bug fixes:

- Allow sharing of libuv poll handles (@patricoferris @talex5 ocaml-multicore/eio#279).
  Luv doesn't allow two callers to watch the same file handle, so we need to handle that in Eio.

Other changes:

- Upgrade to uring 0.4 (@talex5 ocaml-multicore/eio#290).

- Mention `Mutex`, `Semaphore` and `Condition` in the README (@talex5 ocaml-multicore/eio#281).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant