56 FXIMPLEMENT(
FXSingleEventThread, FXObject, FXSingleEventThreadMap, ARRAYNUMBER(FXSingleEventThreadMap))
61 : FXObject(), myClient(client) {
65 FXint res = pipe(event);
70 event = CreateEvent(
nullptr, FALSE, FALSE,
nullptr);
71 FXASSERT(event != NULL);
79 myApp->removeInput(event[
PIPE_READ], INPUT_READ);
84 myApp->removeInput(event, INPUT_READ);
94 FXint res = ::write(event[
PIPE_WRITE], &seltype,
sizeof(seltype));
106 FXint res = ::write(event[
PIPE_WRITE], &seltype,
sizeof(seltype));
118 FXint res = ::read(event[
PIPE_READ], &seltype,
sizeof(seltype));
124 handle(
this, sel,
nullptr);
131 myClient->eventOccurred();
145 std::this_thread::sleep_for(std::chrono::milliseconds(ms));
@ ID_THREAD_EVENT
ID for message passing between threads.
#define UNUSED_PARAMETER(x)
static void sleep(long ms)
long onThreadEvent(FXObject *, FXSelector, void *)
long onThreadSignal(FXObject *, FXSelector, void *)
virtual ~FXSingleEventThread()
FXInputHandle * FXThreadEventHandle
FXDEFMAP(FXBaseObject) FXBaseObjectMap[]