|
|
@@ -38,7 +38,12 @@
|
|
|
|
|
|
self.operation_queue = [NSOperationQueue new];
|
|
|
self.operation_queue.maxConcurrentOperationCount = self.maxThread;
|
|
|
- self.arr_queue_lock = [NSLock new];
|
|
|
+// self.arr_queue_lock = [NSLock new];
|
|
|
+
|
|
|
+// [self.arr_queue_lock lock];
|
|
|
+// [self.arr_queue_lock lock];
|
|
|
+// [self.arr_queue_lock unlock];
|
|
|
+// [self.arr_queue_lock unlock];
|
|
|
|
|
|
[self loadTasks];
|
|
|
// self.backgroundColor = [UIColor clearColor];
|
|
|
@@ -73,11 +78,13 @@
|
|
|
|
|
|
// [self.arr_queue addObject:task];
|
|
|
|
|
|
- [self.arr_queue_lock lock];
|
|
|
- [[self mutableArrayValueForKey:@"arr_queue"] addObject:task];
|
|
|
- [self.arr_queue_lock unlock];
|
|
|
-
|
|
|
+// [self.arr_queue_lock lock];
|
|
|
+// [[self mutableArrayValueForKey:@"arr_queue"] addObject:task];
|
|
|
+// [self.arr_queue_lock unlock];
|
|
|
|
|
|
+ @synchronized(self) {
|
|
|
+ [[self mutableArrayValueForKey:@"arr_queue"] addObject:task];
|
|
|
+ }
|
|
|
|
|
|
if(self.newtaskStatus==TaskStatusWait)
|
|
|
{
|
|
|
@@ -90,11 +97,13 @@
|
|
|
}
|
|
|
-(void) addTasks:(NSMutableArray*) tasks
|
|
|
{
|
|
|
- [self.arr_queue_lock lock];
|
|
|
- [[self mutableArrayValueForKey:@"arr_queue"] addObjectsFromArray:tasks];
|
|
|
- [self.arr_queue_lock unlock];
|
|
|
-
|
|
|
+// [self.arr_queue_lock lock];
|
|
|
+// [[self mutableArrayValueForKey:@"arr_queue"] addObjectsFromArray:tasks];
|
|
|
+// [self.arr_queue_lock unlock];
|
|
|
|
|
|
+ @synchronized(self) {
|
|
|
+ [[self mutableArrayValueForKey:@"arr_queue"] addObjectsFromArray:tasks];
|
|
|
+ }
|
|
|
|
|
|
if(self.newtaskStatus==TaskStatusWait)
|
|
|
{
|
|
|
@@ -120,9 +129,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
- [self.arr_queue_lock lock];
|
|
|
- [[self mutableArrayValueForKey:@"arr_queue"] removeObjectsInArray:tasks];
|
|
|
- [self.arr_queue_lock unlock];
|
|
|
+// [self.arr_queue_lock lock];
|
|
|
+// [[self mutableArrayValueForKey:@"arr_queue"] removeObjectsInArray:tasks];
|
|
|
+// [self.arr_queue_lock unlock];
|
|
|
+
|
|
|
+ @synchronized(self) {
|
|
|
+ [[self mutableArrayValueForKey:@"arr_queue"] removeObjectsInArray:tasks];
|
|
|
+ }
|
|
|
|
|
|
// if (self.delegate && [self.delegate respondsToSelector:@selector(uploadManager:didRemoveTasks:)]) {
|
|
|
// [self.delegate uploadManager:self didRemoveTasks:tasks];
|
|
|
@@ -138,9 +151,14 @@
|
|
|
[fmanager removeItemAtPath:[self filePath:task] error:&error];
|
|
|
|
|
|
|
|
|
- [self.arr_queue_lock lock];
|
|
|
- [[self mutableArrayValueForKey:@"arr_queue"] removeObject:task];
|
|
|
- [self.arr_queue_lock unlock];
|
|
|
+// [self.arr_queue_lock lock];
|
|
|
+// [[self mutableArrayValueForKey:@"arr_queue"] removeObject:task];
|
|
|
+// [self.arr_queue_lock unlock];
|
|
|
+
|
|
|
+
|
|
|
+ @synchronized(self) {
|
|
|
+ [[self mutableArrayValueForKey:@"arr_queue"] removeObject:task];
|
|
|
+ }
|
|
|
|
|
|
// if (self.delegate && [self.delegate respondsToSelector:@selector(uploadManager:didRemoveTasks:)]) {
|
|
|
// [self.delegate uploadManager:self didRemoveTasks:@[task]];
|