[Click] write handler synchronization

Roman Chertov rchertov at cs.ucsb.edu
Thu Nov 13 12:32:55 EST 2008


Hi Eddie,

> Normally run_task will NOT execute in parallel with a write handler.  
> Write handlers are by default "exclusive," meaning that all threads are 
> paused before the write handler executes.

Does this mean that if I have say 4 threads in kernel level then all 4 
would be blocked until a call to a write handler is made through the 
click fs?  I am creating an element that takes a scenario file for a 
link and adds loss and bit corruption.  I need the user app to 
periodically generate and load new events into the Click element via 
clickfs.  There are at least two event vectors with one being available 
to be populated with events through clickfs, and the other is used by 
the Click element itself.  When the Click element exhausts all the 
events in the current vector it then swaps the vectors, so that the just 
exhausted vector becomes available for writing to by the user app.  So I 
am concerned about synchronization (which seems to be not an issue). 
But this raises a problem of all of the tasks blocking for the duration 
of the update.  Is there a way to avoid this?  I wouldn't mind writing 
the synchronization code to avoid the potentially lengthy block.

Thanks,

Roman

> 
> Note that this ONLY applies to write handlers accessed via the Click 
> file system.  Write handlers called by, for example, Script elements are 
> not subject to the same constraints.  (Maybe this should be changed?...)
> 
> Eddie
> 
> 
> Roman Chertov wrote:
>> Hello,
>>     I am making an element which will vary link properties based on a 
>> provided scenario file.  A user app will periodically communicate with 
>> the Click module via the read/write handlers.  Is it possible for 
>> run_task to execute while a write handler is executing?  This can 
>> potentially corrupt the data structure which houses the link events.  
>> So I am curious if I need to add synchronization or not.
>>
>> Thanks,
>>
>> Roman
>> _______________________________________________
>> click mailing list
>> click at amsterdam.lcs.mit.edu
>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> 



More information about the click mailing list