fix for negative delay in runAfterDelay
authorUmair Sadiq <usadiq@fb.com>
Fri, 4 Dec 2015 05:38:07 +0000 (21:38 -0800)
committerfacebook-github-bot-4 <folly-bot@fb.com>
Sun, 6 Dec 2015 03:20:18 +0000 (19:20 -0800)
Summary: Currently, the tryRunAfterDelay implicitly converts a negative delay in int to unsigned int. With this change, the api makes it clear than only unsinged int is accepted as valid delay

Reviewed By: yfeldblum

Differential Revision: D2710034

fb-gh-sync-id: cb3c6b91bb86bbe07fa0e590b2ea871242d19745

folly/io/async/EventBase.cpp
folly/io/async/EventBase.h

index 55691b19db7173d9d758de31422e0dc7d71a00b2..15a37237ccbffa135d8fb611ca60713ced51189b 100644 (file)
@@ -645,7 +645,7 @@ bool EventBase::runImmediatelyOrRunInEventBaseThreadAndWait(const Cob& fn) {
 }
 
 void EventBase::runAfterDelay(const Cob& cob,
-                              int milliseconds,
+                              uint32_t milliseconds,
                               TimeoutManager::InternalEnum in) {
   if (!tryRunAfterDelay(cob, milliseconds, in)) {
     folly::throwSystemError(
@@ -654,7 +654,7 @@ void EventBase::runAfterDelay(const Cob& cob,
 }
 
 bool EventBase::tryRunAfterDelay(const Cob& cob,
-                                 int milliseconds,
+                                 uint32_t milliseconds,
                                  TimeoutManager::InternalEnum in) {
   CobTimeout* timeout = new CobTimeout(this, cob, in);
   if (!timeout->scheduleTimeout(milliseconds)) {
index 65b6a45f5c42711fb2bd7b8b78f1f8182fddd168..3cdaf9a76dbeb00811dfe1c17958d7a5c1b3ae1f 100644 (file)
@@ -440,7 +440,7 @@ class EventBase : private boost::noncopyable,
    */
   void runAfterDelay(
       const Cob& c,
-      int milliseconds,
+      uint32_t milliseconds,
       TimeoutManager::InternalEnum in = TimeoutManager::InternalEnum::NORMAL);
 
   /**
@@ -451,7 +451,7 @@ class EventBase : private boost::noncopyable,
    * */
   bool tryRunAfterDelay(
       const Cob& cob,
-      int milliseconds,
+      uint32_t milliseconds,
       TimeoutManager::InternalEnum in = TimeoutManager::InternalEnum::NORMAL);
 
   /**