Messages in this thread | | | Date | Sun, 24 Feb 2002 17:23:59 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: [PATCH] Lightweight userspace semaphores... |
| |
On Mon, 25 Feb 2002, Rusty Russell wrote: > > Bugger. How about: > > sys_sem_area(void *pagestart, size_t len) > sys_unsem_area(void *pagestart, size_t len) > > Is that sufficient? Is sys_unsem_area required at all?
The above is sufficient, but I would personally actually prefer an interface more like
fd = sem_initialize(); mmap(fd, ...) .. munmap(..)
which gives you a handle for the semaphore.
Note that getting a file descriptor is really quite useful - it means that you can pass the file descriptor around through unix domain sockets, for example, and allow sharing of the semaphore across unrelated processes that way.
Also, the fd thus acts as an "anchor" for any in-kernel data structures that the semaphore implementation may (or may not) want to use. Think of it as your /dev/usem, except with a more explicit interface.
And make the initial mmap() only do a limited number of pages, so that people don't start trying to allocate tons of memory this way.-
Linus
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |