diff options
| author | 2009-04-28 02:13:12 +0200 | |
|---|---|---|
| committer | 2009-04-28 02:13:12 +0200 | |
| commit | c2d46d901822c54a0677318522db62f30b8d5f04 (patch) | |
| tree | c98b6fa1d654db978bcd756eba954786dfe2409f | |
| parent | 2f6910a012f14e132565043b7f231373f6b8cc23 (diff) | |
| download | usbmuxd-c2d46d901822c54a0677318522db62f30b8d5f04.tar.gz usbmuxd-c2d46d901822c54a0677318522db62f30b8d5f04.tar.bz2 | |
poll on listenfd
| -rw-r--r-- | main.c | 5 |
1 files changed, 4 insertions, 1 deletions
| @@ -80,6 +80,7 @@ int main_loop(int listenfd) | |||
| 80 | usbmuxd_log(LL_SPEW, "USB timeout is %d ms", to); | 80 | usbmuxd_log(LL_SPEW, "USB timeout is %d ms", to); |
| 81 | 81 | ||
| 82 | fdlist_create(&pollfds); | 82 | fdlist_create(&pollfds); |
| 83 | fdlist_add(&pollfds, FD_LISTEN, listenfd, POLLIN); | ||
| 83 | usb_get_fds(&pollfds); | 84 | usb_get_fds(&pollfds); |
| 84 | usbmuxd_log(LL_SPEW, "fd count is %d", pollfds.count); | 85 | usbmuxd_log(LL_SPEW, "fd count is %d", pollfds.count); |
| 85 | 86 | ||
| @@ -92,13 +93,15 @@ int main_loop(int listenfd) | |||
| 92 | return -1; | 93 | return -1; |
| 93 | } | 94 | } |
| 94 | } else { | 95 | } else { |
| 96 | int done_usb = 0; | ||
| 95 | for(i=0; i<pollfds.count; i++) { | 97 | for(i=0; i<pollfds.count; i++) { |
| 96 | if(pollfds.fds[i].revents) { | 98 | if(pollfds.fds[i].revents) { |
| 97 | if(pollfds.owners[i] == FD_USB) { | 99 | if(!done_usb && pollfds.owners[i] == FD_USB) { |
| 98 | if(usb_process() < 0) { | 100 | if(usb_process() < 0) { |
| 99 | usbmuxd_log(LL_FATAL, "usb_process() failed"); | 101 | usbmuxd_log(LL_FATAL, "usb_process() failed"); |
| 100 | return -1; | 102 | return -1; |
| 101 | } | 103 | } |
| 104 | done_usb = 1; | ||
| 102 | } | 105 | } |
| 103 | } | 106 | } |
| 104 | } | 107 | } |
