** Description changed:

  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...
+ - HashPauser objects utilize the same code as the GUI pause requests. 
HashPauser objects are currently used for holding disk activity while directory 
trees and indices of the share are rebuilded (share refresh). Obviously due to 
this 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 hashing a few larger files and you pause from the GUI and 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 and click Pause (which is 
ineffetive), and keep the Indexing progress dialog open, then the displayed 
stats will go very weird soon: you'll see numbers go as large as they displayed 
in scientific notation, etc...

-- 
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 as the GUI pause requests. 
HashPauser objects are currently used for holding disk activity while directory 
trees and indices of the share are rebuilded (share refresh). Obviously due to 
this 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 hashing a few larger files and you pause from the GUI and 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 and click Pause (which is 
ineffetive), and keep the Indexing progress dialog open, then the displayed 
stats will go very weird soon: you'll see 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


_______________________________________________
Mailing list: https://launchpad.net/~linuxdcpp-team
Post to     : linuxdcpp-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~linuxdcpp-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to