Problems with semaphores, mutexes, and atomic?
arnd at arndb.de
Mon Jun 20 04:03:06 EDT 2011
On Monday 20 June 2011 09:44:16 Dave Hylands wrote:
> On Mon, Jun 20, 2011 at 12:20 AM, saeed bishara <saeed.bishara at gmail.com> wrote:
> > On Mon, Jun 20, 2011 at 9:39 AM, Dave Hylands <dhylands at gmail.com> wrote:
> >> Hi,
> >> I wrote a small test module to test semaphores, mutexes and atomic
> >> increments, and I've tested it with CONFIG_SMP=y with 1 and 2
> >> processors and with CONFIG_SMP disabled.
> >> My test code can be found here:
> >> http://svn.hylands.org/linux/test-mutex/test-mutex.c
> >> (it's about 133 lines long).
> > yout code is not complete, the DEFINE_SEMAPHORE and DEFINE_SEMAPHORE
> > definitions are missing
> I don't follow. Line 7 & 8 has
> DEFINE_MUTEX( lock );
> DEFINE_SEMAPHORE( sem_lock );
> and line 19 has
> DEFINE_SEMAPHORE( thread_wait );
DEFINE_SEMAPHORE needs another argument, your code won't compile.
You should basically never use semaphores anyway. In order to wait
for a kthread to finish, use kthread_stop(). Do not use a semaphore
when you want a mutex.
More information about the linux-arm-kernel