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 tb_poll_fds() to obtain file descriptors for polling #119

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

Conversation

tobyp
Copy link

@tobyp tobyp commented Sep 29, 2018

This adds a function to obtain file descriptors from termbox that can be be polled for IO-readiness.
This can be used to integrate termbox into an event loop like asyncio or curio in python, or libuv in C, so the program can process other things (like network sockets) asynchronously with UI events.

The idea is to use tb_poll_fds() to get a set of descriptors, register them for polling (e.g. with EPOLLIN), and when any events arrive, the next tb_poll_event() can be expected to complete quickly.

(edit: markdown formatting and C usage example)

@tobyp
Copy link
Author

tobyp commented Aug 23, 2020

Any feedback/requests on this?
In theory, the function could output struct pollfds with the correct event masks set, but this ties the implementation to poll(), and doesn't map neatly for epoll, kqueue, and others. But, since there's a non-blocking tb_peek_event() function, it should be viable to poll for all read-like states, and risk a few spurious wake-ups.

@nsf
Copy link
Owner

nsf commented Aug 25, 2020

Sorry for not responding. As you can see this project is not exactly well maintained. I'm sure main loop issues are relevant for the C world as what is offered is not perfect. But yeah, I don't think I have time for any sensible project maintenance right now. Feel free to keep the changes in your own fork if you need them.

I should probably add a note to README that this project is no longer maintained.

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