temp fix for GDB hang
diff --git a/src/engine/platform/Linux/systemUnix.cpp b/src/engine/platform/Linux/systemUnix.cpp
index 6c79583..c8b112c 100644
--- a/src/engine/platform/Linux/systemUnix.cpp
+++ b/src/engine/platform/Linux/systemUnix.cpp
@@ -171,6 +171,9 @@ valueType* idSystemLocal::GetCurrentUser( void )
{
return "player";
}
+
+ fcntl( STDIN_FILENO, F_SETFL, fcntl( STDIN_FILENO, F_GETFL, 0 ) | O_NONBLOCK );
+
return p->pw_name;
}
diff --git a/src/engine/platform/systemMain.cpp b/src/engine/platform/systemMain.cpp
index d0c4a7f..0b14ece 100644
--- a/src/engine/platform/systemMain.cpp
+++ b/src/engine/platform/systemMain.cpp
@@ -468,6 +468,10 @@ void* idSystemLocal::LoadDll( pointer name )
}
}
+#if defined (__LINUX__)
+ fcntl( STDIN_FILENO, F_SETFL, fcntl( STDIN_FILENO, F_GETFL, 0 ) | O_NONBLOCK );
+#endif
+
return libHandle;
}
@@ -528,8 +532,10 @@ pointer idSystemLocal::SignalToString( sint sig )
return "Illegal instruction";
case SIGFPE:
return "Erroneous arithmetic operation";
+#if !defined (__LINUX__)
case SIGSEGV:
return "Invalid memory reference";
+#endif
case SIGTERM:
return "Termination signal";
#if defined (_WIN32)
@@ -710,7 +716,9 @@ Q_EXPORT sint engineMain( sint argc, valueType * *argv )
signal( SIGILL, systemLocal.SigHandler );
signal( SIGFPE, systemLocal.SigHandler );
+#if !defined (__LINUX__)
signal( SIGSEGV, systemLocal.SigHandler );
+#endif
signal( SIGTERM, systemLocal.SigHandler );
signal( SIGINT, systemLocal.SigHandler );
GitHub
sha: da501c56