Skip to content

make methods async via swig #8

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

make methods async via swig #8

wants to merge 1 commit into from

Conversation

zoedberg
Copy link
Member

Alternative to #6

With this PR we make methods async by changing the swig interface. We suppose the blocking version of the library is not needed, therefore we won't be keeping both versions (blocking and async) unless some users of this library will ask for this explicitly.

@tmalahie could you please check if this works good on your side? Also please note that most of rgb-lib methods should not be called in parallel. In the future we'll add some checks on the rust side to prevent parallel calls to "write" methods.

@tmalahie
Copy link
Contributor

tmalahie commented Jan 1, 2025

Hey sorry for the delay in response I was busy on other topics lately.
I like your suggestions of making everything async by default 👍 however I tested it and it doesn't seem to fix the main issue, even though it is async it is still making the main process freeze when I call an RGB function... I think the underlying library runs on the main thread which is what causes everything to hang despite the "asynceness"

@tmalahie
Copy link
Contributor

tmalahie commented Jan 1, 2025

Also please note that most of rgb-lib methods should not be called in parallel

For info in my PR I managed to solve this specific question of guaranteeing that everything is still called sequentially. The way it worked is that it only creates one background process for everything, and all the rgblib functions are called within this process. So when you call an rgb function, if there is a previous operation in progress it will wait for it to complete before running the next one.

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.

2 participants