void IoEvent_handleEvent(int fd, short eventType, void *context) { IoEvent *self = (IoEvent *)context; struct event *ev = IoEvent_rawEvent(self); IoEventManager *em = IoState_protoWithInitFunction_(IOSTATE, IoEventManager_proto); //printf("IoEvent_handleEvent type:%i descriptor:%i\n", eventType, fd); List_remove_(DATA(em)->activeEvents, self); //printf("e: %i\n", List_size(DATA(em)->activeEvents)); if (!ev) { printf("IoEventManager_addEvent: attempt to process an IoEvent with a 0x0 event struct - possible gc error"); exit(1); } event_del(ev); /* if (eventType != && !RawDescriptor_isValid(fd)) { printf("IoEvent_handleEvent: handleEvent type %i on bad file descriptor\n", eventType); } */ IoState_pushRetainPool(IOSTATE); { IoMessage *m = DATA(em)->handleEventMessage; IoMessage_setCachedArg_to_(m, 0, IOBOOL(self, eventType == EV_TIMEOUT)); IoMessage_locals_performOn_(m, self, self); } IoState_popRetainPool(IOSTATE); //printf("IoEvent_handleEvent %p done\n", (void *) context); }
void IoList_rawRemove_(IoList *self, IoObject *v) { List_remove_(DATA(self), IOREF(v)); IoObject_isDirty_(self, 1); }
void IoAudioMixer_justRemoveSound_(IoAudioMixer *self, IoSound *ioSound) { /*printf("remove sound %p\n", (void *)ioSound);*/ List_remove_(DATA(self)->sounds, ioSound); Sound_setIsPlaying_(IoSound_rawSound(ioSound), 0); }