*/
#include <stddef.h>
#include <dpl/thread.h>
-#include <dpl/log/vcore_log.h>
+#include <dpl/log/log.h>
#include <sys/time.h>
#include <algorithm>
#include <dpl/assert.h>
void *Thread::StaticThreadEntry(void *param)
{
- VcoreLogD("Entered static thread entry");
+ LogDebug("Entered static thread entry");
// Retrieve context
Thread *This = static_cast<Thread *>(param);
int result = pthread_setspecific(g_threadSpecific.threadSpecific, This);
if (result)
- VcoreLogE("Failed to set threadSpecific.");
+ LogError("Failed to set threadSpecific.");
// Enter thread proc
// Do not allow exceptions to hit pthread core
// Abandon thread
if (This->m_abandon) {
- VcoreLogD("Thread was abandoned");
+ LogDebug("Thread was abandoned");
This->m_thread.detach();
} else {
- VcoreLogD("Thread is joinable");
+ LogDebug("Thread is joinable");
}
}
int Thread::ThreadEntry()
{
- VcoreLogD("Entered default thread entry");
+ LogDebug("Entered default thread entry");
return Exec();
}
void Thread::ProcessEvents()
{
- VcoreLogD("Processing events");
+ LogDebug("Processing events");
// Steal current event list
InternalEventList stolenEvents;
}
// Process event list
- VcoreLogD("Stolen %u internal events", stolenEvents.size());
+ LogDebug("Stolen " << stolenEvents.size() << " internal events");
for (InternalEventList::iterator iterator = stolenEvents.begin();
iterator != stolenEvents.end();
unsigned long currentTimeMiliseconds = GetCurrentTimeMiliseconds();
// Info
- VcoreLogD("Processing timed events. Time now: %lu ms", currentTimeMiliseconds);
+ LogDebug("Processing timed events. Time now: " << currentTimeMiliseconds << " ms");
// All timed events are sorted chronologically
// Emit timed out events
m_timedEventVector.begin()->dueTimeMiliseconds)
{
// Info
- VcoreLogD("Transforming timed event into immediate event. Absolute due time: %lu ms",
+ LogDebug("Transforming timed event into immediate event. Absolute due time: " <<
(m_timedEventVector.begin()->registerTimeMiliseconds +
- m_timedEventVector.begin()->dueTimeMiliseconds));
+ m_timedEventVector.begin()->dueTimeMiliseconds) << " ms");
// Emit immediate event
PushEvent(m_timedEventVector.begin()->event,
int Thread::Exec()
{
- VcoreLogD("Executing thread event processing");
+ LogDebug("Executing thread event processing");
const std::size_t MIN_HANDLE_LIST_SIZE = 4;
}
// Info
- VcoreLogD("Thread loop minimum wait time: %lu ms", minimumWaitTime);
+ LogDebug("Thread loop minimum wait time: " << minimumWaitTime << " ms");
// Do thread waiting
WaitableHandleIndexList waitableHandleIndexList =
if (waitableHandleIndexList.empty()) {
// Timeout occurred. Process timed events.
- VcoreLogD("Timed event list elapsed invoker");
+ LogDebug("Timed event list elapsed invoker");
ProcessTimedEvents();
continue;
}
{
size_t index = *waitableHandleIndexIterator;
- VcoreLogD("Event loop triggered with index: %u", index);
+ LogDebug("Event loop triggered with index: " << index);
switch (index) {
case 0:
if (m_directInvoke) {
m_directInvoke = false;
- VcoreLogD("Handling direct invoker");
+ LogDebug("Handling direct invoker");
// Update list
while (handleList.size() > MIN_HANDLE_LIST_SIZE) {
case 2:
// Timed event list changed
- VcoreLogD("Timed event list changed invoker");
+ LogDebug("Timed event list changed invoker");
ProcessTimedEvents();
// Reset timed event invoker
case 3:
// Waitable handle watch support invoker
- VcoreLogD("Waitable handle watch invoker event occurred");
+ LogDebug("Waitable handle watch invoker event occurred");
// First, remove all previous handles
while (handleList.size() > MIN_HANDLE_LIST_SIZE) {
// Handle invoker in waitable watch support
WaitableHandleWatchSupport::InvokerFinished();
- VcoreLogD("Waitable handle watch invoker event handled");
+ LogDebug("Waitable handle watch invoker event handled");
// Done
break;
default:
// Waitable event watch list
- VcoreLogD("Waitable handle watch event occurred");
+ LogDebug("Waitable handle watch event occurred");
// Handle event in waitable handle watch
{
if (m_directInvoke) {
m_directInvoke = false;
- VcoreLogD("Handling direct invoker");
+ LogDebug("Handling direct invoker");
// Update list
while (handleList.size() > MIN_HANDLE_LIST_SIZE) {
}
}
- VcoreLogD("Waitable handle watch event handled");
+ LogDebug("Waitable handle watch event handled");
// Done
break;
}
}
- VcoreLogD("Leaving thread event processing");
+ LogDebug("Leaving thread event processing");
return 0;
}
void Thread::Run()
{
- VcoreLogD("Running thread");
+ LogDebug("Running thread");
// Critical section
{
m_running = true;
}
- VcoreLogD("Thread run");
+ LogDebug("Thread run");
}
void Thread::Quit()
return;
}
- VcoreLogD("Quitting thread...");
+ LogDebug("Quitting thread...");
// Do not abandon thread, we will join
m_abandon = false;
Throw(Exception::QuitFailed);
}
- VcoreLogD("Thread quit");
+ LogDebug("Thread quit");
}
void Thread::PushEvent(void *event,
// Trigger invoker
m_eventInvoker.Signal();
- VcoreLogD("Event pushed and invoker signaled");
+ LogDebug("Event pushed and invoker signaled");
}
void Thread::PushTimedEvent(void *event,
// Trigger invoker
m_timedEventInvoker.Signal();
- VcoreLogD("Timed event pushed and invoker signaled: "
- "due time: %lu ms, absolute due time: %lu ms",
- dueTimeMiliseconds, currentTimeMiliseconds + dueTimeMiliseconds);
+ LogDebug("Timed event pushed and invoker signaled: "
+ "due time: " << dueTimeMiliseconds << " ms, absolute due time: " <<
+ (currentTimeMiliseconds + dueTimeMiliseconds) << " ms");
}
Thread *Thread::GetInvokerThread()