The main issue on OS X is that we can send Mach primitives back and forth over a Mach port (shared mem. regions, semaphores, etc...) which is something we'll nearly certainly need in the code. If we were to use a pipe for IPC::Channel, we'd still need a Mach port for other stuff.
We need cross-process semaphores to be able to lock shared memory regions cross process (there may be other uses). Per the previous discussion regarding named semaphores/shared memory regions, the only feasible way of doing this on Linux is either with a set of System V semaphores or with a flocks. Mach semaphores are a much lighter weight option on OS X. The requirements are: * Bidirectional pipe through which we can send arbitrary sized messages in an efficient manner. * Secure connection (as Carlos mentioned in his reply) - only a given child process can connect back to the server. On Wed, Nov 5, 2008 at 3:30 PM, Darin Fisher <[EMAIL PROTECTED]> wrote: > What do we need Mach semaphores for? You mention issues with named pipes, > but what about anonymous pipes? I'm curious why we need a different > implementation on OSX and Linux. It seems worth while if we can have a > shared implementation that meets all of our requirements. > > What are the requirements? > > -Darin > > > On Wed, Nov 5, 2008 at 2:05 PM, Jeremy Moskovich <[EMAIL PROTECTED]>wrote: > >> Replying to a previous comment by jam: >> >>> I'm not familiar with OS X so I can't comment on which specific >>> implementation to use. However I'm wondering if it's possible to code >>> proof of concepts of each method and time the latency? This will >>> matter even more if plugins are planned to be run out of process, in >>> which case there will be a lot of synchronous messages. >>> >> >> Mach ports have the distinct advantage that they allow us to send Mach >> semaphores between processes and there's a good chance that FIFOs are >> implemented on top of them. So I think the decision is pretty clear for us. >> >> I definitely agree with you about the performance tests - if we don't have >> those already, it would definitely be good to add a bunch of them for the >> IPC Channel. >> >> Best regards, >> Jeremy >> >> >> On Wed, Nov 5, 2008 at 1:37 PM, Jeremy Moskovich <[EMAIL PROTECTED]>wrote: >> >>> >>> Hi, >>> >>> You can find the design document for OS X IPC at: >>> >>> http://sites.google.com/a/chromium.org/dev/developers/design-documents/os-x-interprocess-communication >>> >>> This document is a work in progress, feedback and comments are >>> welcome. >>> >>> Best regards, >>> Jeremy >>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Chromium-dev" group. To post to this group, send email to chromium-dev@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/chromium-dev?hl=en -~----------~----~----~----~------~----~------~--~---