#include <dpl/waitable_handle_watch_support.h>
#include <dpl/thread.h>
#include <dpl/main.h>
-#include <dpl/log/log.h>
+#include <dpl/log/wrt_log.h>
#include <algorithm>
#include <dpl/assert.h>
{
// Developer assertions
if (!m_watchersMap.empty()) {
- LogWarning("### Leaked watchers map dump ###");
+ WrtLogW("### Leaked watchers map dump ###");
for (WaitableHandleWatchersMap::const_iterator iterator =
m_watchersMap.begin();
iterator != m_watchersMap.end();
++iterator)
{
- LogWarning("### Waitable handle: " << iterator->first);
+ WrtLogW("### Waitable handle: %i", iterator->first);
- LogWarning(
- "### Read listeners: " <<
- iterator->second.readListenersCount);
- LogWarning(
- "### Write listeners: " <<
- iterator->second.writeListenersCount);
+ WrtLogW("### Read listeners: %u", iterator->second.readListenersCount);
+ WrtLogW("### Write listeners: %u", iterator->second.writeListenersCount);
for (WaitableHandleListenerList::const_iterator listenersIterator =
iterator->second.listeners.begin();
listenersIterator != iterator->second.listeners.end();
++listenersIterator)
{
- LogWarning(
- "### Mode: " << listenersIterator->mode <<
- ". Listener: 0x" << std::hex << listenersIterator->listener);
+ WrtLogW("### Mode: %i. Listener: %p",
+ listenersIterator->mode, listenersIterator->listener);
}
}
}
{
// Critical section
{
- RecursiveMutex::ScopedLock lock(&m_watchersMutex);
+ std::lock_guard<std::recursive_mutex> lock(m_watchersMutex);
WaitableHandleListEx handleList;
void WaitableHandleWatchSupport::InvokerFinished()
{
- LogPedantic("Invoker finished called");
+ WrtLogD("Invoker finished called");
// Reset invoker
m_watchersInvoker.Reset();
// Warning: Listeners and/or watcher may also disappear during dispatching
// handlers!
//
- LogPedantic("Waitable event occurred");
+ WrtLogD("Waitable event occurred");
// Critical section for other threads
{
- RecursiveMutex::ScopedLock lock(&m_watchersMutex);
+ std::lock_guard<std::recursive_mutex> lock(m_watchersMutex);
// Notice: We must carefully call watchers here as they may disappear
// (zero listeners) or be created during each of handler call
if (m_watchersMap.find(trackedWatchersIterator->first) ==
m_watchersMap.end())
{
- LogPedantic("Watcher disappeared during watcher handler");
+ WrtLogD("Watcher disappeared during watcher handler");
continue;
}
WaitableHandleListenerList trackedListeners =
trackedWatchersIterator->second.listeners;
- LogPedantic(
- "Calling waitable event listeners (" <<
- trackedListeners.size() << ")...");
+ WrtLogD("Calling waitable event listeners (%u)...",
+ trackedListeners.size());
// Notice: We must carefully call listeners here as they may
// disappear or be created during each of handler call
if (m_watchersMap.find(trackedWatchersIterator->first) ==
m_watchersMap.end())
{
- LogPedantic("Watcher disappeared during watcher handler");
+ WrtLogD("Watcher disappeared during watcher handler");
break;
}
}
if (!listenerStillExists) {
- LogPedantic(
- "Watcher listener disappeared during watcher handler");
+ WrtLogD("Watcher listener disappeared during watcher handler");
break;
}
}
// Call waitable event watch listener
- LogPedantic("Before tracker listener call...");
+ WrtLogD("Before tracker listener call...");
trackedListenersIterator->listener->OnWaitableHandleEvent(
trackedWatchersIterator->first,
trackedListenersIterator->mode);
- LogPedantic("After tracker listener call...");
+ WrtLogD("After tracker listener call...");
}
// Now call all those listeners who registered during listener calls
// FIXME: Implement! Notice, that scenario may be recursive!
- LogPedantic("Waitable event listeners called");
+ WrtLogD("Waitable event listeners called");
// No more waitable events possible - consistency check
break;
WaitMode::Type mode)
{
// Enter waitable event list critical section
- RecursiveMutex::ScopedLock lock(&m_watchersMutex);
+ std::lock_guard<std::recursive_mutex> lock(m_watchersMutex);
// Find proper list to register into
WaitableHandleWatchersMap::iterator mapIterator = m_watchersMap.find(
}
}
- LogPedantic("Adding waitable handle watch: " << waitableHandle);
+ WrtLogD("Adding waitable handle watch: %i", waitableHandle);
// Push new waitable event watch
if (mapIterator != m_watchersMap.end()) {
// Trigger waitable event invoker to commit changes
CommitInvoker();
- LogPedantic("Waitable event watch added and invoker signaled");
+ WrtLogD("Waitable event watch added and invoker signaled");
}
void WaitableHandleWatchSupport::RemoveWaitableHandleWatch(
WaitMode::Type mode)
{
// Enter waitable event list critical section
- RecursiveMutex::ScopedLock lock(&m_watchersMutex);
+ std::lock_guard<std::recursive_mutex> lock(m_watchersMutex);
// Find proper list with listener
WaitableHandleWatchersMap::iterator mapIterator = m_watchersMap.find(
// Same pair listener-mode must exist
Assert(listIterator != mapIterator->second.listeners.end());
- LogPedantic("Removing waitable handle watch: " << waitableHandle);
+ WrtLogD("Removing waitable handle watch: %i", waitableHandle);
// Remove waitable event watch
mapIterator->second.listeners.erase(listIterator);
// Trigger waitable event invoker to commit changes
CommitInvoker();
- LogPedantic("Waitable event watch removed and invoker signaled");
+ WrtLogD("Waitable event watch removed and invoker signaled");
}
void WaitableHandleWatchSupport::CommitInvoker()
{
// Check calling context and execute invoker
if (Thread::GetCurrentThread() == GetInvokerThread()) {
- LogPedantic("Calling direct invoker");
+ WrtLogD("Calling direct invoker");
// Direct invoker call
HandleDirectInvoker();
} else {
- LogPedantic("Calling indirect invoker");
+ WrtLogD("Calling indirect invoker");
// Indirect invoker call
m_watchersInvoker.Signal();