Do you need *poll* specifically (and not select)? On Mac OS X, poll(2) is implemented through kqueue(2) in the kernel. Devices don't support poll on OS X--the device file switch doesn't also have a poll function. It does have select though.
In theory, I could plumb the whole thing so that you could, in fact, either use kqueue() yourself or go through poll(), but that's not what I had in mind. It's just not worth it to do it in MacFUSE. (MacFUSE does, however, support kqueue for file systems--I'm just talking about the user-kernel device layer here.) I could probably give you a select() implementation to try though--if you're interested. Let me know. Amit On Jan 24, 1:36 pm, paul mineiro <[EMAIL PROTECTED]> wrote: > I'm working on Erlang bindings for FUSE. (http://code.google.com/p/ > fuserl/) The ultimate goal is to make a distributed filesystem by > leveraging Mnesia. > > My first version of the fuse bindings used threads but the Erlang > aesthetic is extreme concurrency so I thought reimplementing with poll > was desirable. It works under Linux but fails under Mac. If you > implement this, I could definitely test it. > > Production here is Linux but I have a Mac desktop so I like to have > things work on it. I would love to see you work on this, but I can > just spawn one extra thread (on the mac only), read the raw request > off the kernel file descriptor and then socketpair-it over to the > other thread and then just plug into my poll based architecture over > there. Not super efficient but oh well. > > -- p > > On Jan 23, 8:20 pm, Amit Singh <[EMAIL PROTECTED]> wrote: > > > Tell me something: > > > Why do you need this? Can you give an example of code where you > > (justifiably) need to do a poll or select on fuse_chan_fd()? > > > As is the case with countless other things, Apple didn't foresee > > anybody (except themselves) ever needing to do this. One structure I > > need in the kernel is not exported by Apple, so this would be kludgy > > even if I did it. > > > Do you have the rest of your code working? That is, if I gave you a > > version of MacFUSE where this is supposed to work, will you be able to > > test it? > > > Amit > > > On Jan 23, 7:30 pm, paul mineiro <[EMAIL PROTECTED]> wrote: > > > > cool. well at least i'm not crazy. > > > > thanks for the prompt reply. i look forward to poll support. > > > > -- p > > > > On Jan 23, 5:51 pm, Amit Singh <[EMAIL PROTECTED]> wrote: > > > > > It won't work. > > > > > I haven't implemented support for poll/select in the user-kernel > > > > MacFUSE device layer. I haven't needed it so far, and nobody has asked > > > > for it yet. It should be reasonably straightforward to get this going-- > > > > I'll try to find time to do it in the near future (but no promises). > > > > > Amit > > > > > On Jan 23, 5:26 pm, paul mineiro <[EMAIL PROTECTED]> wrote: > > > > > > hi. > > > > > > i'm trying to port my code from linux and ran into a problem. > > > > > > i'm getting POLLNVAL in revents from poll after calling poll with > > > > > events = POLLIN and fd being the return value of fuse_chan_fd(). > > > > > > should i expect this to work? > > > > > > thanks, > > > > > > -- p --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "macfuse-devel" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/macfuse-devel?hl=en -~----------~----~----~----~------~----~------~--~---
