56 #ifdef CHECK_MEMORY_LEAKS
72 FXMAPTYPE(0, FXThreadEvent::onThreadEvent),
73 FXMAPFUNC(
SEL_THREAD, 0, FXThreadEvent::onThreadEvent),
82 FXint res = pipe(event);
87 event = CreateEvent(NULL, FALSE, FALSE, NULL);
88 FXASSERT(event != NULL);
94 FXThreadEvent::~FXThreadEvent() {
96 getApp()->removeInput(event[
PIPE_READ], INPUT_READ);
97 ::close(event[PIPE_READ]);
101 getApp()->removeInput(event, INPUT_READ);
102 ::CloseHandle(event);
108 void FXThreadEvent::signal() {
111 ::write(event[
PIPE_WRITE], &seltype,
sizeof(seltype));
119 void FXThreadEvent::signal(FXuint seltype) {
121 ::write(event[
PIPE_WRITE], &seltype,
sizeof(seltype));
131 long FXThreadEvent::onThreadSignal(
FXObject*, FXSelector,
void*) {
134 ::read(event[
PIPE_READ], &seltype,
sizeof(seltype));
138 handle(
this, FXSEL(seltype, 0), NULL);
144 long FXThreadEvent::onThreadEvent(
FXObject*, FXSelector sel,
void*) {
145 FXuint seltype = FXSELTYPE(sel);
146 return target && target->handle(
this, FXSEL(seltype, message), NULL);