Add RWLockDummy for NO_THREADS builds
This commit is contained in:
parent
c4a8b8f7c5
commit
25800ffb0e
7 changed files with 30 additions and 25 deletions
|
@ -33,18 +33,9 @@
|
|||
#include "os/mutex.h"
|
||||
#include "version.h"
|
||||
|
||||
#ifdef NO_THREADS
|
||||
|
||||
#define OBJTYPE_RLOCK
|
||||
#define OBJTYPE_WLOCK
|
||||
|
||||
#else
|
||||
|
||||
#define OBJTYPE_RLOCK RWLockRead _rw_lockr_(lock);
|
||||
#define OBJTYPE_WLOCK RWLockWrite _rw_lockw_(lock);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_METHODS_ENABLED
|
||||
|
||||
MethodDefinition D_METHOD(const char *p_name) {
|
||||
|
@ -895,15 +886,9 @@ void ClassDB::add_property_group(StringName p_class, const String &p_name, const
|
|||
|
||||
void ClassDB::add_property(StringName p_class, const PropertyInfo &p_pinfo, const StringName &p_setter, const StringName &p_getter, int p_index) {
|
||||
|
||||
#ifndef NO_THREADS
|
||||
lock->read_lock();
|
||||
#endif
|
||||
|
||||
ClassInfo *type = classes.getptr(p_class);
|
||||
|
||||
#ifndef NO_THREADS
|
||||
lock->read_unlock();
|
||||
#endif
|
||||
|
||||
ERR_FAIL_COND(!type);
|
||||
|
||||
|
@ -1380,10 +1365,7 @@ RWLock *ClassDB::lock = NULL;
|
|||
|
||||
void ClassDB::init() {
|
||||
|
||||
#ifndef NO_THREADS
|
||||
|
||||
lock = RWLock::create();
|
||||
#endif
|
||||
}
|
||||
|
||||
void ClassDB::cleanup() {
|
||||
|
@ -1406,10 +1388,7 @@ void ClassDB::cleanup() {
|
|||
resource_base_extensions.clear();
|
||||
compat_classes.clear();
|
||||
|
||||
#ifndef NO_THREADS
|
||||
|
||||
memdelete(lock);
|
||||
#endif
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -55,3 +55,11 @@ Semaphore *SemaphoreDummy::create() {
|
|||
void SemaphoreDummy::make_default() {
|
||||
Semaphore::create_func = &SemaphoreDummy::create;
|
||||
};
|
||||
|
||||
RWLock *RWLockDummy::create() {
|
||||
return memnew(RWLockDummy);
|
||||
};
|
||||
|
||||
void RWLockDummy::make_default() {
|
||||
RWLock::create_func = &RWLockDummy::create;
|
||||
};
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#define THREAD_DUMMY_H
|
||||
|
||||
#include "mutex.h"
|
||||
#include "rw_lock.h"
|
||||
#include "semaphore.h"
|
||||
#include "thread.h"
|
||||
|
||||
|
@ -69,4 +70,20 @@ public:
|
|||
static void make_default();
|
||||
};
|
||||
|
||||
class RWLockDummy : public RWLock {
|
||||
|
||||
static RWLock *create();
|
||||
|
||||
public:
|
||||
virtual void read_lock() {}
|
||||
virtual void read_unlock() {}
|
||||
virtual Error read_try_lock() { return OK; }
|
||||
|
||||
virtual void write_lock() {}
|
||||
virtual void write_unlock() {}
|
||||
virtual Error write_try_lock() { return OK; }
|
||||
|
||||
static void make_default();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -89,10 +89,11 @@ void handle_sigchld(int sig) {
|
|||
|
||||
void OS_Unix::initialize_core() {
|
||||
|
||||
#ifdef NO_PTHREADS
|
||||
#ifdef NO_THREADS
|
||||
ThreadDummy::make_default();
|
||||
SemaphoreDummy::make_default();
|
||||
MutexDummy::make_default();
|
||||
RWLockDummy::make_default();
|
||||
#else
|
||||
ThreadPosix::make_default();
|
||||
SemaphorePosix::make_default();
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "thread_posix.h"
|
||||
#include "script_language.h"
|
||||
|
||||
#if defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)
|
||||
#if (defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)) && !defined(NO_THREADS)
|
||||
|
||||
#ifdef PTHREAD_BSD_SET_NAME
|
||||
#include <pthread_np.h>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
@author Juan Linietsky <reduzio@gmail.com>
|
||||
*/
|
||||
|
||||
#if defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)
|
||||
#if (defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)) && !defined(NO_THREADS)
|
||||
|
||||
#include "os/thread.h"
|
||||
#include <pthread.h>
|
||||
|
|
|
@ -103,7 +103,7 @@ def configure(env):
|
|||
## Compile flags
|
||||
|
||||
env.Append(CPPPATH=['#platform/javascript'])
|
||||
env.Append(CPPFLAGS=['-DJAVASCRIPT_ENABLED', '-DUNIX_ENABLED', '-DPTHREAD_NO_RENAME', '-DTYPED_METHOD_BIND', '-DNO_THREADS'])
|
||||
env.Append(CPPFLAGS=['-DJAVASCRIPT_ENABLED', '-DUNIX_ENABLED', '-DTYPED_METHOD_BIND', '-DNO_THREADS'])
|
||||
env.Append(CPPFLAGS=['-DGLES3_ENABLED'])
|
||||
|
||||
# These flags help keep the file size down
|
||||
|
|
Loading…
Reference in a new issue