[sword-devel] thread-safety in libsword?

Troy A. Griffitts scribe at crosswire.org
Mon Jan 11 09:31:21 MST 2016


Hi Teus,

Yes, as Greg has pointed out, we've done our best to make it easy to perform multitheaded operations with the library by allowing you to instantiate a new SWMgr for each thread. We don't use threading libraries ourself inside the engine to lock critical sections but instead we tried to avoid critical sections within one instance of an SWMgr. We allocate a distinct instance of SWMgr per thread in many of our friends, e.g., one SWMgr for display and one for search so we can search in a separate thread.

With a standard threading mechanism included in C++11 we might consider conditionally compiling in support to assure some iffy common sections of code are in fact safe. I am specifically thinking of junk buffers in SWBuf (but I think we cleaned those up) and also FileMgr, which handles closing and reopening file handles at the system level when resources are tight.

On January 11, 2016 5:52:58 AM MST, Teus Benschop <teusjannette at gmail.com> wrote:
>Hi,
>
>When accessing libsword simultaneously from multiple threads, it often
>crashes. When surrounding the calls to the library with a mutex.lock
>and a
>mutex.unlock at the end, there's no crashes when accessing it in the
>same
>situation. I am seeing this on Linux and on the Mac. Should I do
>something
>in the library, or make a special call, to make it thread-safe? Or is
>surrounding the library calls with a mutex the recommended way to
>handle
>this?
>
>Teus.
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>sword-devel mailing list: sword-devel at crosswire.org
>http://www.crosswire.org/mailman/listinfo/sword-devel
>Instructions to unsubscribe/change your settings at above page

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20160111/c4f15b8f/attachment.html>


More information about the sword-devel mailing list