aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/inputhandler.h13
-rw-r--r--src/mapblock.cpp2
-rw-r--r--src/minimap.h6
-rw-r--r--src/noise.cpp2
-rw-r--r--src/util/thread.h138
5 files changed, 67 insertions, 94 deletions
diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h
index 3da856f7b..a894e35aa 100644
--- a/src/client/inputhandler.h
+++ b/src/client/inputhandler.h
@@ -88,15 +88,14 @@ public:
} else if (event.EventType == irr::EET_LOG_TEXT_EVENT) {
static const enum LogMessageLevel irr_loglev_conv[] = {
LMT_VERBOSE, // ELL_DEBUG
- LMT_INFO, // ELL_INFORMATION
- LMT_ACTION, // ELL_WARNING
- LMT_ERROR, // ELL_ERROR
- LMT_ERROR, // ELL_NONE
+ LMT_INFO, // ELL_INFORMATION
+ LMT_ACTION, // ELL_WARNING
+ LMT_ERROR, // ELL_ERROR
+ LMT_ERROR, // ELL_NONE
};
- assert(event.LogEvent.Level < sizeof(irr_loglev_conv));
+ assert(event.LogEvent.Level < ARRLEN(irr_loglev_conv));
log_printline(irr_loglev_conv[event.LogEvent.Level],
- std::string("Irrlicht: ")
- + (const char*) event.LogEvent.Text);
+ std::string("Irrlicht: ") + (const char *)event.LogEvent.Text);
return true;
}
/* always return false in order to continue processing events */
diff --git a/src/mapblock.cpp b/src/mapblock.cpp
index 39cac0b60..1d2e1e250 100644
--- a/src/mapblock.cpp
+++ b/src/mapblock.cpp
@@ -57,7 +57,7 @@ static const char *modified_reason_strings[] = {
"deactivateFarObjects: Static data moved in",
"deactivateFarObjects: Static data moved out",
"deactivateFarObjects: Static data changed considerably",
- "finishBlockMake: expireDayNightDiff"
+ "finishBlockMake: expireDayNightDiff",
"unknown",
};
diff --git a/src/minimap.h b/src/minimap.h
index edb491717..628be7489 100644
--- a/src/minimap.h
+++ b/src/minimap.h
@@ -105,11 +105,7 @@ public:
MinimapData *data;
protected:
- const char *getName()
- {
- return "MinimapUpdateThread";
- }
-
+ const char *getName() { return "MinimapUpdateThread"; }
virtual void doUpdate();
private:
diff --git a/src/noise.cpp b/src/noise.cpp
index 826593474..5b08eb942 100644
--- a/src/noise.cpp
+++ b/src/noise.cpp
@@ -138,7 +138,7 @@ void PcgRandom::bytes(void *out, size_t len)
*outb = r & 0xFF;
outb++;
bytes_left--;
- r >>= 8;
+ r >>= CHAR_BIT;
}
}
diff --git a/src/util/thread.h b/src/util/thread.h
index faa5869ca..b3a5e68a2 100644
--- a/src/util/thread.h
+++ b/src/util/thread.h
@@ -28,13 +28,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "log.h"
template<typename T>
-class MutexedVariable
-{
+class MutexedVariable {
public:
MutexedVariable(T value):
m_value(value)
- {
- }
+ {}
T get()
{
@@ -47,13 +45,13 @@ public:
JMutexAutoLock lock(m_mutex);
m_value = value;
}
-
+
// You'll want to grab this in a SharedPtr
- JMutexAutoLock * getLock()
+ JMutexAutoLock *getLock()
{
return new JMutexAutoLock(m_mutex);
}
-
+
// You pretty surely want to grab the lock when accessing this
T m_value;
@@ -65,8 +63,7 @@ private:
A single worker thread - multiple client threads queue framework.
*/
template<typename Key, typename T, typename Caller, typename CallerData>
-class GetResult
-{
+class GetResult {
public:
Key key;
T item;
@@ -74,34 +71,27 @@ public:
};
template<typename Key, typename T, typename Caller, typename CallerData>
-class ResultQueue: public MutexedQueue< GetResult<Key, T, Caller, CallerData> >
-{
+class ResultQueue : public MutexedQueue<GetResult<Key, T, Caller, CallerData> > {
};
template<typename Caller, typename Data, typename Key, typename T>
-class CallerInfo
-{
+class CallerInfo {
public:
Caller caller;
Data data;
- ResultQueue< Key, T, Caller, Data>* dest;
+ ResultQueue<Key, T, Caller, Data> *dest;
};
template<typename Key, typename T, typename Caller, typename CallerData>
-class GetRequest
-{
+class GetRequest {
public:
- GetRequest()
- {
- }
- GetRequest(Key a_key)
- {
+ GetRequest() {}
+ ~GetRequest() {}
+
+ GetRequest(Key a_key) {
key = a_key;
}
- ~GetRequest()
- {
- }
-
+
Key key;
std::list<CallerInfo<Caller, CallerData, Key, T> > callers;
};
@@ -114,8 +104,7 @@ public:
* @param CallerData data passed back to caller
*/
template<typename Key, typename T, typename Caller, typename CallerData>
-class RequestQueue
-{
+class RequestQueue {
public:
bool empty()
{
@@ -123,40 +112,36 @@ public:
}
void add(Key key, Caller caller, CallerData callerdata,
- ResultQueue<Key, T, Caller, CallerData> *dest)
+ ResultQueue<Key, T, Caller, CallerData> *dest)
{
+ typename std::deque<GetRequest<Key, T, Caller, CallerData> >::iterator i;
+ typename std::list<CallerInfo<Caller, CallerData, Key, T> >::iterator j;
+
{
JMutexAutoLock lock(m_queue.getMutex());
/*
If the caller is already on the list, only update CallerData
*/
- for(typename std::deque< GetRequest<Key, T, Caller, CallerData> >::iterator
- i = m_queue.getQueue().begin();
- i != m_queue.getQueue().end(); ++i)
- {
+ for (i = m_queue.getQueue().begin(); i != m_queue.getQueue().end(); ++i) {
GetRequest<Key, T, Caller, CallerData> &request = *i;
-
- if(request.key == key)
- {
- for(typename std::list< CallerInfo<Caller, CallerData, Key, T> >::iterator
- i = request.callers.begin();
- i != request.callers.end(); ++i)
- {
- CallerInfo<Caller, CallerData, Key, T> &ca = *i;
- if(ca.caller == caller)
- {
- ca.data = callerdata;
- return;
- }
+ if (request.key != key)
+ continue;
+
+ for (j = request.callers.begin(); j != request.callers.end(); ++j) {
+ CallerInfo<Caller, CallerData, Key, T> &ca = *j;
+ if (ca.caller == caller) {
+ ca.data = callerdata;
+ return;
}
- CallerInfo<Caller, CallerData, Key, T> ca;
- ca.caller = caller;
- ca.data = callerdata;
- ca.dest = dest;
- request.callers.push_back(ca);
- return;
}
+
+ CallerInfo<Caller, CallerData, Key, T> ca;
+ ca.caller = caller;
+ ca.data = callerdata;
+ ca.dest = dest;
+ request.callers.push_back(ca);
+ return;
}
}
@@ -171,7 +156,7 @@ public:
ca.data = callerdata;
ca.dest = dest;
request.callers.push_back(ca);
-
+
m_queue.push_back(request);
}
@@ -185,13 +170,11 @@ public:
return m_queue.pop_frontNoEx();
}
- void pushResult(GetRequest<Key, T, Caller, CallerData> req,
- T res) {
-
- for(typename std::list< CallerInfo<Caller, CallerData, Key, T> >::iterator
+ void pushResult(GetRequest<Key, T, Caller, CallerData> req, T res)
+ {
+ for (typename std::list<CallerInfo<Caller, CallerData, Key, T> >::iterator
i = req.callers.begin();
- i != req.callers.end(); ++i)
- {
+ i != req.callers.end(); ++i) {
CallerInfo<Caller, CallerData, Key, T> &ca = *i;
GetResult<Key,T,Caller,CallerData> result;
@@ -206,24 +189,13 @@ public:
}
private:
- MutexedQueue< GetRequest<Key, T, Caller, CallerData> > m_queue;
+ MutexedQueue<GetRequest<Key, T, Caller, CallerData> > m_queue;
};
-class UpdateThread : public JThread
-{
-private:
- JSemaphore m_update_sem;
-
-protected:
- virtual void doUpdate() = 0;
- virtual const char *getName() = 0;
-
+class UpdateThread : public JThread {
public:
- UpdateThread()
- {
- }
- ~UpdateThread()
- {}
+ UpdateThread() {}
+ virtual ~UpdateThread() {}
void deferUpdate()
{
@@ -243,30 +215,36 @@ public:
ThreadStarted();
const char *thread_name = getName();
-
log_register_thread(thread_name);
+ porting::setThreadName(thread_name);
DSTACK(__FUNCTION_NAME);
-
BEGIN_DEBUG_EXCEPTION_HANDLER
- porting::setThreadName(thread_name);
-
while (!StopRequested()) {
-
m_update_sem.Wait();
// Empty the queue, just in case doUpdate() is expensive
- while (m_update_sem.GetValue()) m_update_sem.Wait();
+ while (m_update_sem.GetValue())
+ m_update_sem.Wait();
- if (StopRequested()) break;
+ if (StopRequested())
+ break;
doUpdate();
}
+
END_DEBUG_EXCEPTION_HANDLER(errorstream)
return NULL;
}
+
+protected:
+ virtual void doUpdate() = 0;
+ virtual const char *getName() = 0;
+
+private:
+ JSemaphore m_update_sem;
};
#endif