فهرست منبع

Start time of a Request is now computed lazily from the first call to resume.

Christian Noon 9 سال پیش
والد
کامیت
cfc9dce856
2فایلهای تغییر یافته به همراه4 افزوده شده و 4 حذف شده
  1. 3 3
      Source/Request.swift
  2. 1 1
      Source/ResponseSerialization.swift

+ 3 - 3
Source/Request.swift

@@ -48,7 +48,7 @@ public class Request {
     /// The progress of the request lifecycle.
     public var progress: NSProgress { return delegate.progress }
 
-    let startTime: NSDate
+    var startTime: NSDate?
     var endTime: NSDate?
 
     // MARK: - Lifecycle
@@ -67,8 +67,6 @@ public class Request {
             delegate = TaskDelegate(task: task)
         }
 
-        startTime = NSDate()
-
         delegate.queue.addOperationWithBlock { self.endTime = NSDate() }
     }
 
@@ -159,6 +157,8 @@ public class Request {
         Resumes the request.
     */
     public func resume() {
+        if startTime == nil { startTime = NSDate() }
+
         task.resume()
         NSNotificationCenter.defaultCenter().postNotificationName(NotificationNames.TaskDidResume, object: task)
     }

+ 1 - 1
Source/ResponseSerialization.swift

@@ -123,7 +123,7 @@ extension Request {
             let initialResponseTime = self.delegate.initialResponseTime ?? requestCompletedTime
 
             let timeline = Timeline(
-                requestStartTime: self.startTime,
+                requestStartTime: self.startTime ?? NSDate(),
                 initialResponseTime: initialResponseTime,
                 requestCompletedTime: requestCompletedTime,
                 serializationCompletedTime: NSDate()