4#include <Foundation/FoundationInternal.h>
5PL_FOUNDATION_INTERNAL_HEADER
7#if PL_ENABLED(PL_PLATFORM_LINUX)
9# include <Foundation/Basics.h>
10# include <Foundation/Communication/Implementation/MessageLoop.h>
11# include <Foundation/Threading/Mutex.h>
16class plPipeChannel_linux;
18# ifndef _PL_DEFINED_POLLFD_POD
19# define _PL_DEFINED_POLLFD_POD
20PL_DEFINE_AS_POD_TYPE(
struct pollfd);
23class PL_FOUNDATION_DLL plMessageLoop_linux :
public plMessageLoop
26 plMessageLoop_linux();
27 ~plMessageLoop_linux();
30 virtual void WakeUp()
override;
34 friend class plPipeChannel_linux;
44 void RegisterWait(plPipeChannel_linux* pChannel, WaitType type,
int fd);
45 void RemovePendingWaits(plPipeChannel_linux* pChannel);
50 PL_DECLARE_POD_TYPE();
52 plPipeChannel_linux* m_pChannel;
62 int m_wakeupPipeReadEndFd = -1;
63 int m_wakeupPipeWriteEndFd = -1;
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Base class for a communication channel between processes.
Definition IpcChannel.h:44
Internal sub-system used by plIpcChannel.
Definition MessageLoop.h:20
virtual bool WaitForMessages(plInt32 iTimeout, plIpcChannel *pFilter)=0
Waits until a new message has been processed (sent, received).
virtual void WakeUp()=0
Wake up the message loop when new work comes in.
Provides a simple mechanism for mutual exclusion to prevent multiple threads from accessing a shared ...
Definition Mutex.h:13