#5121 closed Bug (fixed)
Stopped torrents resume after sleep automatically.
Reported by: | gsch | Owned by: | livings124 |
---|---|---|---|
Priority: | Normal | Milestone: | 2.74 |
Component: | Mac Client | Version: | 2.73 |
Severity: | Normal | Keywords: | mac |
Cc: |
Description
There is a possibility that a stopped torrent resumes downloading after waking up from sleep. (Only on a mac.)
The reason is simple / how to reproduce.
- The mac gets put to sleep while a torrent is running.
fResumeOnWake gets set to true.
- When waking up the mac, the torrent resumes as it should.
- Stop all running torrents (it's not sufficient to only stop one).
- Put the mac to sleep.
- Wake it up, the torrent resumes because fResumeOnWake is still true.
There are 2 possible fixes..
Either reset the fResumeOnWake state in Torrent.m:
- (void) wakeUp { if (fResumeOnWake) { fResumeOnWake = NO; tr_ninf( fInfo->name, "restarting because of wakeUp" ); tr_torrentStart(fHandle); } }
or calling 'sleep' for each torrent when the mac suspends in Controller.m:
- (void) sleepCallback: (natural_t) messageType argument: (void *) messageArgument { switch (messageType) { case kIOMessageSystemWillSleep: //stop all transfers (since some are active) before going to sleep and remember to resume when we wake up for (Torrent * torrent in fTorrents) [torrent sleep]; //if there are any running transfers, wait 15 seconds for them to stop for (Torrent * torrent in fTorrents) if ([torrent isActive]) { sleep(15); break; } IOAllowPowerChange(fRootPort, (long) messageArgument); break; ...
I've tried both methods. However, I prefer the second, because resetting the fResumeOnWake seems to be kind of a hack.
Attachments (1)
Change History (5)
Changed 10 years ago by gsch
comment:1 Changed 10 years ago by livings124
comment:2 Changed 10 years ago by livings124
- Milestone changed from None Set to 2.80
- Resolution set to fixed
- Status changed from new to closed
comment:3 Changed 10 years ago by livings124
tweaked in r13612
comment:4 Changed 10 years ago by jordan
- Milestone changed from 2.80 to 2.74
Note: See
TracTickets for help on using
tickets.
Thanks! I made a slight adjustment to the patch and submitted in r13611.