Changeset f36cd97
- Timestamp:
- Dec 17, 2008, 5:12:37 PM (15 years ago)
- Branches:
- master, debian, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- 1895c29
- Parents:
- 1631825
- git-author:
- Nelson Elhage <nelhage@mit.edu> (12/17/08 15:44:15)
- git-committer:
- Nelson Elhage <nelhage@mit.edu> (12/17/08 17:12:37)
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
owl.c
rc675b39 rf36cd97 190 190 d->fd = STDIN; 191 191 d->cfunc = &owl_process_input; 192 d-> pfunc= NULL;192 d->destroy = NULL; 193 193 owl_select_add_dispatch(d); 194 194 } … … 201 201 d->fd = ZGetFD(); 202 202 d->cfunc = &owl_zephyr_process_events; 203 d-> pfunc= NULL;203 d->destroy = NULL; 204 204 owl_select_add_dispatch(d); 205 205 owl_global_set_havezephyr(&g); … … 401 401 402 402 403 #ifdef HAVE_LIBZEPHYR404 /* Check for any zephyrs that have come in while we've done init. */405 owl_zephyr_process_events();406 #endif407 408 403 owl_function_debugmsg("startup: entering main loop"); 409 404 /* main loop */ … … 609 604 } 610 605 611 void owl_process_input( )606 void owl_process_input(owl_dispatch *d) 612 607 { 613 608 int ret; -
owl.h
rc675b39 rf36cd97 526 526 527 527 typedef struct _owl_dispatch { 528 int fd; /* FD to watch for dispatch. */ 529 void (*cfunc)(); /* C function to dispatch to. */ 530 SV *pfunc; /* Perl function to dispatch to. */ 528 int fd; /* FD to watch for dispatch. */ 529 void (*cfunc)(struct _owl_dispatch*); /* C function to dispatch to. */ 530 void (*destroy)(struct _owl_dispatch*); /* Destructor */ 531 void *data; 531 532 } owl_dispatch; 532 533 -
perlconfig.c
r1631825 rf36cd97 446 446 void owl_perlconfig_dispatch_free(owl_dispatch *d) 447 447 { 448 SvREFCNT_dec(d-> pfunc);448 SvREFCNT_dec(d->data); 449 449 } 450 450 … … 494 494 } 495 495 496 void owl_perlconfig_d o_dispatch(owl_dispatch *d)497 { 498 SV *cb = d-> pfunc;496 void owl_perlconfig_dispatch(owl_dispatch *d) 497 { 498 SV *cb = d->data; 499 499 dSP; 500 500 if(cb == NULL) { 501 501 owl_function_error("Perl callback is NULL!"); 502 return; 502 503 } 503 504 -
select.c
rc675b39 rf36cd97 133 133 d = (owl_dispatch*)owl_list_get_element(dl, elt); 134 134 owl_list_remove_element(dl, elt); 135 if (d-> pfunc) {136 owl_perlconfig_dispatch_free(d);135 if (d->destroy) { 136 d->destroy(d); 137 137 } 138 138 owl_free(d); … … 152 152 if (elt != -1) { 153 153 d = (owl_dispatch*)owl_list_get_element(owl_global_get_dispatchlist(&g), elt); 154 if (d-> pfunc == NULL) {154 if (d->cfunc != owl_perlconfig_dispatch) { 155 155 /* don't mess with non-perl dispatch functions from here. */ 156 156 return 1; … … 160 160 d = malloc(sizeof(owl_dispatch)); 161 161 d->fd = fd; 162 d->cfunc = NULL; 163 d->pfunc = cb; 162 d->cfunc = owl_perlconfig_dispatch; 163 d->destroy = owl_perlconfig_dispatch_free; 164 d->data = cb; 164 165 owl_select_add_dispatch(d); 165 166 return 0; … … 174 175 if (elt != -1) { 175 176 d = (owl_dispatch*)owl_list_get_element(owl_global_get_dispatchlist(&g), elt); 176 if (d-> pfunc != NULL) {177 if (d->cfunc == owl_perlconfig_dispatch) { 177 178 owl_select_remove_dispatch(fd); 178 179 return 0; … … 216 217 if (d != NULL && FD_ISSET(d->fd, fds)) { 217 218 if (d->cfunc != NULL) { 218 (d->cfunc)(); 219 } 220 else if (d->pfunc != NULL) { 221 owl_perlconfig_do_dispatch(d); 219 d->cfunc(d); 222 220 } 223 221 } -
zephyr.c
rb9cb41b rf36cd97 1203 1203 1204 1204 #ifdef HAVE_LIBZEPHYR 1205 void owl_zephyr_process_events( ) {1205 void owl_zephyr_process_events(owl_dispatch *d) { 1206 1206 int zpendcount=0; 1207 1207 ZNotice_t notice; … … 1235 1235 1236 1236 #else 1237 void owl_zephyr_process_events( ) {1238 1239 } 1240 #endif 1237 void owl_zephyr_process_events(owl_dispatch *d) { 1238 1239 } 1240 #endif
Note: See TracChangeset
for help on using the changeset viewer.