[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