From d07b730bfe2fa85c84db257108ee293ef1a38ae0 Mon Sep 17 00:00:00 2001 From: Andrew Gallagher Date: Thu, 10 Nov 2016 22:44:43 -0800 Subject: [PATCH] folly/test/SingletonTestStructs: move inlined function to impl file Reviewed By: yfeldblum Differential Revision: D4162763 fbshipit-source-id: 25c9bfae2e7679f4b98a3d64ee9f2319eb6e7f4a --- folly/test/SingletonTestStructs.cpp | 33 +++++++++++++++++++++++++++++ folly/test/SingletonTestStructs.h | 14 ++---------- 2 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 folly/test/SingletonTestStructs.cpp diff --git a/folly/test/SingletonTestStructs.cpp b/folly/test/SingletonTestStructs.cpp new file mode 100644 index 00000000..5cc84fd3 --- /dev/null +++ b/folly/test/SingletonTestStructs.cpp @@ -0,0 +1,33 @@ +/* + * Copyright 2016 Facebook, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +namespace { +// A simple class that tracks how often instances of the class and +// subclasses are created, and the ordering. Also tracks a global +// unique counter for each object. +std::atomic global_counter(19770326); +} + +std::vector& Watchdog::creation_order() { + static std::vector ret; + return ret; +} + +Watchdog::Watchdog() : serial_number(++global_counter) { + creation_order().push_back(this); +} diff --git a/folly/test/SingletonTestStructs.h b/folly/test/SingletonTestStructs.h index d8a90c9c..5fb5dab7 100644 --- a/folly/test/SingletonTestStructs.h +++ b/folly/test/SingletonTestStructs.h @@ -23,20 +23,10 @@ #include -// A simple class that tracks how often instances of the class and -// subclasses are created, and the ordering. Also tracks a global -// unique counter for each object. -std::atomic global_counter(19770326); - struct Watchdog { - static std::vector& creation_order() { - static std::vector ret; - return ret; - } + static std::vector& creation_order(); - Watchdog() : serial_number(++global_counter) { - creation_order().push_back(this); - } + Watchdog(); ~Watchdog() { if (creation_order().back() != this) { -- 2.34.1