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

Calispel: Proper concurrency in Nyxt at last! #1047

Closed
wants to merge 9 commits into from
Closed

Conversation

Ambrevar
Copy link
Member

I've replaced the ChanL library with Calispel which seems much, much better!

See CodyReichert/awesome-cl#290 (comment) for a discussion.

I took the opportunity to (hopefully) fix the startup race condition. @aartaka Can you make sure this branch starts properly for you?

Finally, I've made use of fair-alt instead of the interrupt-channel juggling business which was ugly and hard to understand.
This fair-alt will become essential in the new minibuffer library.

Seems that running the startup-function in a separate thread is a remnent from
an draft version and it's no longer needed.
ChanL's SELECT statement is non-blocking so it was unusable.
@aartaka
Copy link
Contributor

aartaka commented Nov 20, 2020

This branch starts properly for me.

@Ambrevar
Copy link
Member Author

Ambrevar commented Nov 20, 2020 via email

@jmercouris
Copy link
Member

Branch appears to work for me too! woohoo!

First bug report: Reduce to buffer command will activate, but will not show the minibuffer. I have to cancel the command, try to reactivate it, and then sometimes it shows. I am not sure what the sequence of events are to get it work.

@Ambrevar
Copy link
Member Author

Ambrevar commented Nov 20, 2020 via email

@jmercouris
Copy link
Member

Ah, yes! I remember we had discussed a similar bug at some point in the recent past.

@jmercouris
Copy link
Member

Perhaps it was the very same bug.

@Ambrevar
Copy link
Member Author

Ambrevar commented Nov 20, 2020 via email

@Ambrevar
Copy link
Member Author

Ambrevar commented Nov 23, 2020

Before merging:

@Ambrevar
Copy link
Member Author

Ambrevar commented Nov 24, 2020

There was a race condition between prompt-minibuffer and hide.
But it seems that we can't use locks in prompt-minibuffer, possibly because it
runs on the GTK thread.

Anyways, the fix is easy: always hide the minibuffer in return-selection
_before_ returning the result.
@Ambrevar
Copy link
Member Author

  • Minibuffer race condition should now be fixed.

@Ambrevar
Copy link
Member Author

  • Package Calispel for Guix.

All done.

Has anyone experienced any other issues with this patch?

@Ambrevar
Copy link
Member Author

Any other review? Did anyone have the chance to look at the code?
Let me know if this is OK to merge.

@Ambrevar
Copy link
Member Author

Ambrevar commented Dec 1, 2020

@jmercouris: Can you test this on macOS? Thanks!

@jmercouris
Copy link
Member

jmercouris commented Dec 8, 2020

Works on macOS! Merge when ready!

@Ambrevar
Copy link
Member Author

Ambrevar commented Dec 9, 2020

Merged with c0b6b9e
Thank you all for testing!

@Ambrevar Ambrevar closed this Dec 9, 2020
@Ambrevar Ambrevar deleted the calispel branch July 28, 2021 10:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants