mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00

Theory: the producer (Qt GUI cover function) exists only once per instance of FunctionDispatcher. This follows from the fact that the dispatcher instance is created on the recipient thread. The consumer (the cover cache) could in theory be multiple threads (but it isn't). Because the items produced by the producer are not equivalent, we need to ensure that the order of items put in the queue by the producer is equal to the order of the requests. To guarantee this order, regardless of the number of consumer threads, we ensure that only one request to the producer can be outstanding.
calibre is an e-book library manager. It can view, convert and catalog e-books \ in most of the major e-book formats. It can also talk to e-book reader \ devices. It can go out to the internet and fetch metadata for your books. \ It can download newspapers and convert them into e-books for convenient \ reading. It is cross platform, running on Linux, Windows and OS X. For screenshots: https://calibre-ebook.com/demo For installation/usage instructions please see http://calibre-ebook.com For source code access: bzr branch lp:calibre To update your copy of the source code: bzr merge Tarballs of the source code for each release are now available \ at http://code.google.com/p/calibre-ebook
Languages
Python
92.6%
C
3.3%
C++
3.1%
HTML
0.4%
Shell
0.2%
Other
0.2%