fixed a race condition in Task::Stop
diff --git a/aos/externals/WPILib/WPILib/Task.cpp b/aos/externals/WPILib/WPILib/Task.cpp
index 4568246..b81b16e 100644
--- a/aos/externals/WPILib/WPILib/Task.cpp
+++ b/aos/externals/WPILib/WPILib/Task.cpp
@@ -83,7 +83,12 @@
 	bool ok = true;
 	if (Verify())
 	{
-		ok = HandleError(taskDelete(m_taskID));
+    STATUS result = taskDelete(m_taskID);
+    // If it got deleted between the Verify() and the taskDelete then it's not
+    // an actual error.
+    if (errno != S_objLib_OBJ_DELETED) {
+		  ok = HandleError(result);
+    }
 	}
 	m_taskID = kInvalidTaskID;
 	return ok;
@@ -131,6 +136,7 @@
  */
 bool Task::Verify()
 {
+  if (m_taskID == kInvalidTaskID) return false;
 	return taskIdVerify(m_taskID) == OK;
 }
 
@@ -181,6 +187,7 @@
 
 /**
  * Handles errors generated by task related code.
+ * @return Whether or not this result is considered successful.
  */
 bool Task::HandleError(STATUS results)
 {