linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #09280
[Bug 2111115] Re: Hashing cannot be paushed instantly or sometimes at all
** Changed in: dcplusplus
Status: In Progress => Fix Committed
--
You received this bug notification because you are a member of
Dcplusplus-team, which is subscribed to DC++.
https://bugs.launchpad.net/bugs/2111115
Title:
Hashing cannot be paushed instantly or sometimes at all
Status in DC++:
Fix Committed
Bug description:
This is a long time issue stil present on DC++ 0.882. As the title says pausing the hasher loop from the GUI is often not instantaneous, especially when hashing many small files.
The cause is a buggy pauser code that signals a counting semaphore for each file added to the hashing queue but later it fails to account for this behavior.
Side effects above the lack of instant pause:
- HashPauser objects utilize the same code and they're used for holding disk activity while a shared directories tree is being (re)built (share refresh). Obviously due to the issue HashPauser often cannot fulfill its purpose.
- The current code allows manual /rebuild's to start when hashing is paused. Same issue as above, this is not wanted during share indices rebuilds.
- If you start to hash a few larger files and you pause hashing, then when you exit DC++ a deadlock can happen more ofthen than not, which prevents the hasher thread from shutting down.
- If you start hashing a lot of small files then click Pause (which is ineffetive) and you keep the Indexing progress dialog open, the displayed stats will go very weird soon, like numbers go as large as they displayed in scientific notation, etc...
To manage notifications about this bug go to:
https://bugs.launchpad.net/dcplusplus/+bug/2111115/+subscriptions
References