Changing 2017 constants from aos::Once to absl::call_once()

Change-Id: I0f0ef84c77e5e71171836a478c761398c342f017
diff --git a/y2017/BUILD b/y2017/BUILD
index 30da3b9..404683b 100644
--- a/y2017/BUILD
+++ b/y2017/BUILD
@@ -13,6 +13,7 @@
         "//aos:once",
         "//aos/logging",
         "//aos/mutex",
+        "@com_google_absl//absl/base",
         "//aos/network:team_number",
         "//frc971:constants",
         "//frc971/shooter_interpolation:interpolation",
diff --git a/y2017/constants.cc b/y2017/constants.cc
index e765acf..1a2924d 100644
--- a/y2017/constants.cc
+++ b/y2017/constants.cc
@@ -14,6 +14,7 @@
 #include "aos/mutex/mutex.h"
 #include "aos/network/team_number.h"
 #include "aos/once.h"
+#include "absl/base/call_once.h"
 
 #include "y2017/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
 #include "y2017/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
@@ -152,17 +153,19 @@
   return r;
 }
 
-const Values *DoGetValues() {
+void DoGetValues(const Values** result) {
   uint16_t team = ::aos::network::GetTeamNumber();
   AOS_LOG(INFO, "creating a Constants for team %" PRIu16 "\n", team);
-  return DoGetValuesForTeam(team);
+  *result = DoGetValuesForTeam(team);
 }
 
 }  // namespace
 
 const Values &GetValues() {
-  static ::aos::Once<const Values> once(DoGetValues);
-  return *once.Get();
+  static absl::once_flag once;
+  static const Values* result;
+  absl::call_once(once, DoGetValues, &result);
+  return *result;
 }
 
 const Values &GetValuesForTeam(uint16_t team_number) {