lkml.org 
[lkml]   [2011]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v0] add nano semaphore in kernel
From
On Tue, Jan 4, 2011 at 10:03 PM, Pavel Machek <pavel@ucw.cz> wrote:
> Hi!
>
>> +/*
>> + * nano_semaphore_down - acquire the nano semaphore
>> + * @s: the nano semaphore to be acquired
>> + * @nano_secs: the nano seconds to wait if necessary,
>> + *           could be zero if want to wait as long as possible.
>> + *
>> + * Returns >0 if acquired successfully, <=0 otherwise.
>> + *
>> + * Note unlike down() in semaphore, nano_semaphore_down is not looping until
>> + * the nano semaphore is hold, but simply reports the result. And the callers
>> + * could, if they like, loop in simple manner, for instance,
>> + *   while (1 != nano_semaphore_down(s, 800));
>> + *   do_home_work();
>> + *   nano_semaphore_up(s);
>
> But thats spinlock, not semaphore, right?
>

Though spin lock involved, the caller has to sleep 800ns per loop.

> Also, your example does not use the API right -- according to
> description, 42 is correct 'semaphore acquired' reply...
>

As I understand, the example, though could be totally removed, does
not show the recommended usage of nano semaphore, but expresses the
difference from semaphore. The recommended however looks
nano_semaphore_down(s, 0);
do_home_work();
nano_semaphore_up(s);

if you like to wait as long as possible.

Cheers
Hillf
--
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/

\
 
 \ /
  Last update: 2011-01-04 15:21    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site