Re: Creating a "SWORD-over-network" protocol for remote SWORD repo access?

"Troy A. Griffitts" <[email protected]>
Newsgroups gmane.comp.literature.sword.devel
Message-ID <[email protected]>
If you follow advice to have 1 InstallMgr instance per thread, it is perfectly thread safe. We don't try to allow multiple threads to begin installations of multiple modules using the same instance of an InstallMgr. Just new an InstallMgr for each parallel module installation you wish to start. If you are worried about your UI thread calling terminate on an InstallMgr in a worker thread, every SWORD frontend since time began does this. If you can imagine a scenario you could create which might in a million times fail (e.g. if (transport) [another thread finishes and destroys transport] transport->terminate()) and you actually think this is a practical concern worth adding to your UI, then take the advice in the comment and call terminate from your status update callback, which is called from the transport object itself assuring it will be true.

On August 5, 2024 09:33:20 GMT+02:00, Jaak Ristioja <[email protected]> wrote:
>On 04.08.24 22:49, Troy A. Griffitts wrote:
>> On 8/3/24 12:21 PM, Jaak Ristioja wrote:
>>> Libsword does not well lend itself to certain tasks, and some are impossible. For example, there is still no reliable way for users to abort module installation/download in a thread-safe manner. Working around such libsword shortcomings without changing libsword is not worth the effort.
>> 
>> Hi Jaak,
>> 
>> libsword provides for a thread to request termination of a transfer with InstallMgr::terminate():
>> 
>> https://github.com/bibletime/crosswire-sword-mirror/blob/trunk/include/installmgr.h#L297-L301
>
>Hi Troy,
>
>Yes, but it is still not thread-safe:
>
>
>https://github.com/bibletime/crosswire-sword-mirror/blob/trunk/src/mgr/installmgr.cpp#L276
>
>https://github.com/bibletime/crosswire-sword-mirror/blob/trunk/include/remotetrans.h#L100
>
>https://github.com/bibletime/crosswire-sword-mirror/blob/trunk/include/remotetrans.h#L62
>
>https://github.com/bibletime/crosswire-sword-mirror/blob/trunk/src/mgr/remotetrans.cpp#L210
>
>
>Best regards,
>Jaak Ristioja
>
>_______________________________________________
>sword-devel mailing list: [email protected]
>http://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.

_______________________________________________
sword-devel mailing list: [email protected]
http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.