event_base_free(evb_);
}
+#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__APPLE__)
{
std::lock_guard<std::mutex> lock(localStorageMutex_);
for (auto storage : localStorageToDtor_) {
storage->onEventBaseDestruction(*this);
}
}
+#endif
VLOG(5) << "EventBase(): Destroyed.";
}
template <typename MessageT>
class NotificationQueue;
+#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__APPLE__)
namespace detail {
class EventBaseLocalBase;
}
template <typename T>
class EventBaseLocal;
+#endif
class EventBaseObserver {
public:
// allow runOnDestruction() to be called from any threads
std::mutex onDestructionCallbacksMutex_;
+#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__APPLE__)
// see EventBaseLocal
friend class detail::EventBaseLocalBase;
template <typename T> friend class EventBaseLocal;
std::mutex localStorageMutex_;
std::unordered_map<uint64_t, std::shared_ptr<void>> localStorage_;
std::unordered_set<detail::EventBaseLocalBase*> localStorageToDtor_;
+#endif
};
} // folly
* limitations under the License.
*/
+#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__APPLE__)
+
#include <folly/io/async/EventBaseLocal.h>
#include <atomic>
#include <thread>
std::atomic<uint64_t> EventBaseLocalBase::keyCounter_{0};
}}
+
+#endif // !__ANDROID__ && !ANDROID && !__APPLE__
#pragma once
+#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__APPLE__)
+
#include <boost/noncopyable.hpp>
#include <folly/Synchronized.h>
#include <folly/io/async/EventBase.h>
}
+
+#endif // !__ANDROID__ && !ANDROID && !__APPLE__