Hi Костя,

Thank you for your comments. Threading discussions have come up many times over the life of the projects. We have cleaned the code up to help facilitate multithreading in the client. The general summary of the past discussions is: We try to make it safe to use different SWModule instances in different threads, but not the same SWModule instance in different threads. An SWModule performs work against the data files it represents. It would be similar in concept to an iterator which operates on its container. You can think of this way: you shouldn't use the same iterator in two different threads, but you can create multiple iterators against the container (as long as you aren't writing to the container :) ), which is the same for us.

Searching is one task often performed in the background, especially non-lucene searching. These days a non-indexed search on any modern hardware should take less than a few seconds, but in the older days it would take longer, so this was often done in a separate thread in the background.

Anyway, in practice, projects usually keep one SWMgr around per thread, and then using the threading library of your choice for your platform. I believe we talked about adding a .clone() method on SWModule to make it easier to be streamlined.

The alternative is, as you suggest, try to incorporate some kind of cross-platform threading framework into the engine if we wanted to try to make some operations safe on the same SWModule object per thread, but I think conceptually we would be changing the paradigm for how SWModule is intended to be used.

Thoughts?

Troy




On 03/03/2014 05:01 AM, Костя Маслюк wrote:
Hi, all.

Welcome for your commentaries:
www.crosswire.org/tracker/browse/API-166

Blessings.

_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to