[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Diff between Semaphore and Completion Variable
On Tue, 2006-06-06 at 17:27 +0530, Rajat Jain wrote:
> Hi,
>
> I would appreciate if some one could explain the difference between
> "completion" variables and the semaphores in Linux.
>
> As far as I can understand, both are used to provide synchronization
> among kernel threads. Both have similar mechanism i.e. one or more
> tasks wait on the completion variable (or semaphore) while another
> task holds it and does some work (in critical section). When the task
> holding the completion variable (or semaphore) is done, it signals the
> other task using "complete" (or "up"). This would cause the waiting
> tasks to wait up.
>
> So why have two different things to do the same thing?
they don't do the same thing just like a hammer and a couch are two
different things.
a completion is for doing "wait until this event is finished", while a
semaphore (well don't use semaphores, use a mutex nowadays) is for
providing mutual exclusion for a piece of data.
Totally different things.
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/