[Click] Handler Synchronization question

Roman Chertov rchertov at cs.ucsb.edu
Fri Feb 11 13:27:40 EST 2011


I have a question regarding synchronization between the handlers and the main
element code.  As far as I understand, using Handler::NONEXCLUSIVE flag when
defining a handler allows for the case where the main thread executes a task for
some element, while at the same time the handler for that element can get
called.

However, the following comment for SpinLock got me confused as to how ensure
atomic operations when the element task and the handler execute at the same
time.

 * Spinlock operations do nothing unless Click was compiled with SMP support
 * (with --enable-multithread).  Therefore, Spinlock should not be used to,
 * for example, synchronize handlers with main element threads.  See also
 * SpinlockIRQ.

If Spinlock is not the proper mechanism, what is the proper way to do it when
building an element that must work in user and kernel levels?

Thanks,

Roman




More information about the click mailing list