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

Replace the `.sync*` macros on `Future[Ack]` with functions #517

Closed
alexandru opened this Issue Jan 12, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@alexandru
Member

alexandru commented Jan 12, 2018

Related to issue #515 — the .sync* macros have been low level implementation details, exposed because they are useful as shortcuts.

However those macros are very unstable, error prone and I am not convinced that they bring performance benefits.

They should be replaced with plain functions.

If we see a performance regression in Observable.flatMap or scanEval, where I believe such macros are used, then we can keep using macros internally. But I doubt it, the macros themselves being a performance optimization that was done without proof.

@alexandru alexandru added this to the 3.0.0 milestone Jan 12, 2018

@alexandru alexandru self-assigned this Jan 14, 2018

alexandru added a commit that referenced this issue Jan 14, 2018

Fix #517, #525, #526 — remove macros, SerialCancelable.orderedUpdate (#…
…527)

Changes:

- replaces `Future[Ack]` extension methods with plain functions instead of macros
- replaces `Scheduler` extension methods for Scala 2.11 with plain functions instead of macros
- removes `SerialCancelable#orderedUpdate`

Also increases code coverage for `monix.execution.cancelables`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment