Ignore:
Timestamp:
Mar 7, 2013, 4:21:26 AM (9 years ago)
Author:
livings124
Message:

#5319 potential race condition when counting torrents

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Controller.m

    r14042 r14043  
    2626#import <IOKit/pwr_mgt/IOPMLib.h>
    2727#import <Carbon/Carbon.h>
     28#import <libkern/OSAtomic.h>
    2829
    2930#import "Controller.h"
     
    23532354        selectedValuesSL = [fTableView selectedValues];
    23542355   
    2355     __block NSUInteger active = 0, downloading = 0, seeding = 0, paused = 0;
     2356    __block int32_t active = 0, downloading = 0, seeding = 0, paused = 0;
    23562357    NSString * filterType = [fDefaults stringForKey: @"Filter"];
    23572358    BOOL filterActive = NO, filterDownload = NO, filterSeed = NO, filterPause = NO, filterStatus = YES;
     
    23822383            const BOOL isActive = ![torrent isStalled];
    23832384            if (isActive)
    2384                 ++active;
     2385                OSAtomicAdd32(1, &active);
    23852386           
    23862387            if ([torrent isSeeding])
    23872388            {
    2388                 ++seeding;
     2389                OSAtomicAdd32(1, &seeding);
    23892390                if (filterStatus && !((filterActive && isActive) || filterSeed))
    23902391                    return NO;
     
    23922393            else
    23932394            {
    2394                 ++downloading;
     2395                OSAtomicAdd32(1, &downloading);
    23952396                if (filterStatus && !((filterActive && isActive) || filterDownload))
    23962397                    return NO;
     
    23992400        else
    24002401        {
    2401             ++paused;
     2402            OSAtomicAdd32(1, &paused);
    24022403            if (filterStatus && !filterPause)
    24032404                return NO;
Note: See TracChangeset for help on using the changeset viewer.