Hi Roman, The simplest way is to *not* set the Handler::NONEXCLUSIVE flag for the handler unless you know that there are no synchronization issues with other logic in the element.
Are you talking about a case in which you need to set Handler::NONEXCLUSIVE for performance reasons? BBL --- On Fri, 2/11/11, Roman Chertov <[email protected]> wrote: > From: Roman Chertov <[email protected]> > Subject: [Click] Handler Synchronization question > To: [email protected] > Date: Friday, February 11, 2011, 10:27 AM > 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 > ____________________________________________________________________________________ The fish are biting. Get more visitors on your site using Yahoo! Search Marketing. http://searchmarketing.yahoo.com/arp/sponsoredsearch_v2.php _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
