Hi Roman, Fair question, and at first I thought the question was harder than it is. If you want to use Handler::NONEXCLUSIVE with locking, try SpinlockIRQ. I believe this will work even when Click is compiled for uniprocessor.
Eddie On 2/11/11 10:27 AM, Roman Chertov wrote: > 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 > > > _______________________________________________ > click mailing list > [email protected] > https://amsterdam.lcs.mit.edu/mailman/listinfo/click _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
