While I'm looking for options to make Paypal donations work, I set up an intermediate solution via Moneybrookers, which works in more countries than Paypal. Their website is at
https://www.moneybrookers.com, where you need to register (if not already registered). To send me money, just use the email address shown on the right side of this blog post.
On code side, I did some profiling, but didn't turn up anything useful. There's some rare case where BT module starts maxing out CPU usage, which I was hoping to catch within the profiler to determine the cause, but, as was expected, the issue never happened when running in profiler. Still, the following miscellaneous things got fixed today:
- Status-line printing code now also locks output mutex, to avoid multiple threads writing log messages corrupting the output (normal log messages were synchronized properly, but the status-line code uses direct IO). This seems to have caused some rare stack corruption issues on win32 as well, resulting in crashes.
- Close files after hashing them when doing cross-file hashes (bt-specific). This fixes numerous issues with "unable to open file for reading" errors on windows when attempting to complete downloads.
- Fixed 'resume' command in hnshell (was resuming wrong files).
- All iterators pointing to members of std::deque container become invalid when an element is added or removed from the container, which was causing crashes in BT module on windows at times when canceling chunk requests. No idea why this never triggered on Linux; nonetheless, this is fixed now.
- Rewrote "shared requests" handling in BT module (chunks that are requested from multiple peers when running low on available chunks to download). Now Torrent object only keeps weak references to the requests, to be less intrusive. This should help the near-end-of-file download handling in BT downloads, but more tweaking is needed there still.
- Tweaked the threshold for considering a BT peer/seed "slow source" - lowered it from 10kb/s to 1kb/s.
On GUI design note, another few pages of sketches were generated during a brainstorming session with our designer, and I believe we have a pretty solid layout finished for search, transfer and media library pages. Initial drafts were also done for Home / Statistics pages, but currently there are more questions than answers on those pages.
Madcat, ZzZz