summaryrefslogtreecommitdiff
path: root/drivers/unix/os_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/unix/os_unix.cpp')
-rw-r--r--drivers/unix/os_unix.cpp33
1 files changed, 12 insertions, 21 deletions
diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp
index 4fa46b16cd..283cff0486 100644
--- a/drivers/unix/os_unix.cpp
+++ b/drivers/unix/os_unix.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -30,11 +30,11 @@
#ifdef UNIX_ENABLED
-#include "memory_pool_static_malloc.h"
-#include "os/memory_pool_dynamic_static.h"
+
#include "thread_posix.h"
#include "semaphore_posix.h"
#include "mutex_posix.h"
+#include "rw_lock_posix.h"
#include "core/os/thread_dummy.h"
//#include "core/io/file_access_buffered_fa.h"
@@ -88,6 +88,10 @@ void OS_Unix::print_error(const char* p_function,const char* p_file,int p_line,c
print("\E[1;35mSCRIPT ERROR: %s: \E[0m\E[1m%s\n",p_function,err_details);
print("\E[0;35m At: %s:%i.\E[0m\n",p_file,p_line);
break;
+ case ERR_SHADER:
+ print("\E[1;36mSHADER ERROR: %s: \E[0m\E[1m%s\n",p_function,err_details);
+ print("\E[0;36m At: %s:%i.\E[0m\n",p_file,p_line);
+ break;
}
}
@@ -112,8 +116,6 @@ int OS_Unix::unix_initialize_audio(int p_audio_driver) {
return 0;
}
-static MemoryPoolStaticMalloc *mempool_static=NULL;
-static MemoryPoolDynamicStatic *mempool_dynamic=NULL;
void OS_Unix::initialize_core() {
@@ -126,6 +128,7 @@ void OS_Unix::initialize_core() {
ThreadPosix::make_default();
SemaphorePosix::make_default();
MutexPosix::make_default();
+ RWLockPosix::make_default();
#endif
FileAccess::make_default<FileAccessUnix>(FileAccess::ACCESS_RESOURCES);
FileAccess::make_default<FileAccessUnix>(FileAccess::ACCESS_USERDATA);
@@ -141,8 +144,6 @@ void OS_Unix::initialize_core() {
PacketPeerUDPPosix::make_default();
IP_Unix::make_default();
#endif
- mempool_static = new MemoryPoolStaticMalloc;
- mempool_dynamic = memnew( MemoryPoolDynamicStatic );
ticks_start=0;
ticks_start=get_ticks_usec();
@@ -151,9 +152,6 @@ void OS_Unix::initialize_core() {
void OS_Unix::finalize_core() {
- if (mempool_dynamic)
- memdelete( mempool_dynamic );
- delete mempool_static;
}
@@ -357,7 +355,6 @@ Error OS_Unix::execute(const String& p_path, const List<String>& p_arguments,boo
pid_t pid = fork();
ERR_FAIL_COND_V(pid<0,ERR_CANT_FORK);
- //print("execute: %s\n",p_path.utf8().get_data());
if (pid==0) {
@@ -391,11 +388,9 @@ Error OS_Unix::execute(const String& p_path, const List<String>& p_arguments,boo
if (p_blocking) {
int status;
- pid_t rpid = waitpid(pid,&status,0);
+ waitpid(pid,&status,0);
if (r_exitcode)
*r_exitcode=WEXITSTATUS(status);
-
- print("returned: %i, waiting for: %i\n",rpid,pid);
} else {
if (r_child_id)
@@ -464,14 +459,14 @@ int OS_Unix::get_processor_count() const {
String OS_Unix::get_data_dir() const {
- String an = Globals::get_singleton()->get("application/name");
+ String an = get_safe_application_name();
if (an!="") {
if (has_environment("HOME")) {
- bool use_godot = Globals::get_singleton()->get("application/use_shared_user_dir");
+ bool use_godot = GlobalConfig::get_singleton()->get("application/use_shared_user_dir");
if (use_godot)
return get_environment("HOME")+"/.godot/app_userdata/"+an;
else
@@ -479,7 +474,7 @@ String OS_Unix::get_data_dir() const {
}
}
- return Globals::get_singleton()->get_resource_path();
+ return GlobalConfig::get_singleton()->get_resource_path();
}
@@ -498,7 +493,6 @@ String OS_Unix::get_executable_path() const {
char buf[256];
memset(buf,0,256);
readlink("/proc/self/exe", buf, sizeof(buf));
- //print_line("Exec path is:"+String(buf));
String b;
b.parse_utf8(buf);
if (b=="") {
@@ -526,9 +520,6 @@ String OS_Unix::get_executable_path() const {
delete[] resolved_path;
return path;
-#elif defined(EMSCRIPTEN)
- // We return nothing
- return String();
#else
ERR_PRINT("Warning, don't know how to obtain executable path on this OS! Please override this function properly.");
return OS::get_executable_path();