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
-~----------~----~----~----~------~----~------~--~---

Reply via email to