The installmgr with libcurl isn't thread safe. It has - as the whole mgr with any ftpmgr - another problem, too: it's not possible to cancel downloading at any time. The installmgr has terminate() but it only sets a flag which is checked after each file has been downloaded. It means that stalled or slow downloading can't really be cancelled.

Libcurl has "multi" interface which could enable threaded usage. Now the installmgr uses "easy" which is not meant for concurrent downloads.

If we want the installmgr to work with threads it should have a thread safe terminate() which calls ftpmgr's thread safe terminate() which calls underlying ftp library's thread-safe connection termination function.

Writing an ftpmgr implementation inside an app can solve this problem because it can be terminated directly from the app code.

--Eeli Kaikkonen

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

Reply via email to