summaryrefslogtreecommitdiffstats
path: root/ipc/glue/MessageLink.cpp
diff options
context:
space:
mode:
authorathenian200 <athenian200@outlook.com>2019-10-01 18:28:10 -0500
committerathenian200 <athenian200@outlook.com>2019-10-21 04:53:39 -0500
commit4105ebb6ed85aaffec5e4469a939945fb9eea066 (patch)
tree27c39693bf713900497c148fed1b9dc68c7ea4ba /ipc/glue/MessageLink.cpp
parent64e03d0149bed895d00e20e71da775e2aabf2f81 (diff)
downloadUXP-4105ebb6ed85aaffec5e4469a939945fb9eea066.tar
UXP-4105ebb6ed85aaffec5e4469a939945fb9eea066.tar.gz
UXP-4105ebb6ed85aaffec5e4469a939945fb9eea066.tar.lz
UXP-4105ebb6ed85aaffec5e4469a939945fb9eea066.tar.xz
UXP-4105ebb6ed85aaffec5e4469a939945fb9eea066.zip
MoonchildProductions#1251 - Part 4: Core build system changes, lots of libevent/IPC junk.
This is mostly ifdefs, but as you can see, Solaris is actually a lot like Linux. They're both more SysV than BSD at core, and most of the differences have more to do with Solaris not using glibc than anything else. I still need to audit a lot of these changes and understand why they're needed and what the alternative approaches are. After this patch, most of the core functionality needed to build Solaris is here.
Diffstat (limited to 'ipc/glue/MessageLink.cpp')
-rw-r--r--ipc/glue/MessageLink.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/ipc/glue/MessageLink.cpp b/ipc/glue/MessageLink.cpp
index a66fbbb32..8c6d9b890 100644
--- a/ipc/glue/MessageLink.cpp
+++ b/ipc/glue/MessageLink.cpp
@@ -16,6 +16,9 @@
#include "nsDebug.h"
#include "nsISupportsImpl.h"
#include "nsXULAppAPI.h"
+#if defined(__sun__) || defined(__sun)
+#include <unistd.h>
+#endif
using namespace mozilla;
using namespace std;
@@ -267,9 +270,19 @@ ProcessLink::OnChannelOpened()
MonitorAutoLock lock(*mChan->mMonitor);
mExistingListener = mTransport->set_listener(this);
+
+// The queue we want here is defined in the namespace 'std' on Solaris, which
+// also has another function called queue in a different namespace. Need to
+// determine whether queue is defined in 'std' on other supported platforms
+// before possibly removing ifdefs.
+
#ifdef DEBUG
if (mExistingListener) {
+#if defined(XP_SOLARIS)
+ std::queue<Message> pending;
+#else
queue<Message> pending;
+#endif
mExistingListener->GetQueuedMessages(pending);
MOZ_ASSERT(pending.empty());
}
@@ -285,8 +298,11 @@ void
ProcessLink::OnTakeConnectedChannel()
{
AssertIOThread();
-
+#if defined(XP_SOLARIS)
+ std::queue<Message> pending;
+#else
queue<Message> pending;
+#endif
{
MonitorAutoLock lock(*mChan->mMonitor);