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

implement processes for remote function #8

Closed
bontric opened this issue Feb 15, 2016 · 6 comments
Closed

implement processes for remote function #8

bontric opened this issue Feb 15, 2016 · 6 comments

Comments

@bontric
Copy link
Collaborator

bontric commented Feb 15, 2016

every remote function should be executed in a separate process

related to #7 and #3

@bontric
Copy link
Collaborator Author

bontric commented Mar 11, 2016

It might be a good idea to use tasklets instead. This will presumably cause less overhead as processes are quite heavy

@stze
Copy link
Collaborator

stze commented Mar 12, 2016

please consider using asynchronous io library libuv for all client io. with that we don't need any thread synchronization (no locks, no semaphores etc), we can stop api calls (#7), and event processes that are needed for remote functions are also provided by the library and can be easily managed via libuv loop. and the best thing, it provides it all async.

check out this neovim uv implementation for details: https://github.com/neovim/python-client/blob/master/neovim/msgpack_rpc/event_loop/uv.py

@mkind
Copy link
Member

mkind commented Mar 12, 2016

We'll I am not sure, whether asynchronous IO is really needed in the first place. Threats are needed anyway otherwise it is not really possible to handle API calls like stop or pause.

@stze
Copy link
Collaborator

stze commented Mar 12, 2016

that's not true, check out libuv docs and neovim implementation for details. libuv uses processes for each "child". these processes can be stopped. it's way more efficient and simple than the current implementation or tasklets.

@stze
Copy link
Collaborator

stze commented Mar 12, 2016

We'll I am not sure, whether asynchronous IO is really needed in the first place. Threats are needed anyway otherwise it is not really possible to handle API calls like stop or pause.

thread sync is a real pain an we should avoid using threads

@bontric
Copy link
Collaborator Author

bontric commented Apr 14, 2016

further discussion moved to #23

@bontric bontric closed this as completed Apr 14, 2016
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

No branches or pull requests

3 participants