Duane Searsmith wrote:

Thank you Ken and Attila for your feedback. I think I have a fair understanding of the issues now. I'm going to do some brainstorming over exactly how I would like the threads to interact with the Cells engine and then try some experiments with different locking strategies and see what happens. I'll report back on what I discover.

OK, don't be afraid to ask. And don't forget about lazy cells. :) If you use those, that creates other issues. I don't much.

One thing that might help (or hurt) is that in Cells3 I started forcing the programmer to single-thread model perturbations:

  (with-integrity (:change ...) (setf <some-cell> ...)

....and there are multiple queues for follow-up work and propagation arising from any change, including a "client" queue for application work, and one can specify either or both a client queue sort function and client queue handler. So there might be some place to wire in a little thread awareness and let things keep moving despite activity by other threads. And with all that information around, there may also be a way for the programmer to indicate they are taking responsibility for data integrity so Just Let Me Do This. ie, They may know X is against the rules but X is quite safe so Just Do It.

kt
_______________________________________________
cells-devel site list
[email protected]
http://common-lisp.net/mailman/listinfo/cells-devel

Reply via email to