Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Eio.Condition #277

Merged
merged 2 commits into from
Aug 11, 2022
Merged

Add Eio.Condition #277

merged 2 commits into from
Aug 11, 2022

Conversation

talex5
Copy link
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

TheLortex 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.

None yet

2 participants