projects
/
lcr.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
afff70d
)
Debugging select loop. Here the process freezes.
author
Andreas Eversberg
<jolly@eversberg.eu>
Thu, 17 Jun 2010 14:26:16 +0000
(16:26 +0200)
committer
Andreas Eversberg
<jolly@eversberg.eu>
Thu, 17 Jun 2010 14:26:16 +0000
(16:26 +0200)
select.c
patch
|
blob
|
history
diff --git
a/select.c
b/select.c
index
8763739
..
b22cb12
100644
(file)
--- a/
select.c
+++ b/
select.c
@@
-88,9
+88,12
@@
int select_main(int polling, int *global_change, void (*lock)(void), void (*unlo
* if no future timeout exists, select will wait infinit.
*/
* if no future timeout exists, select will wait infinit.
*/
+printf("-"); fflush(stdout);
again:
again:
+printf("1"); fflush(stdout);
/* process all work events */
if (next_work()) {
/* process all work events */
if (next_work()) {
+printf("2"); fflush(stdout);
work = 1;
goto again;
}
work = 1;
goto again;
}
@@
-98,7
+101,9
@@
again:
/* process timer events and get timeout for next timer event */
temp = 0;
timer = nearest_timer(&select_timer, &temp);
/* process timer events and get timeout for next timer event */
temp = 0;
timer = nearest_timer(&select_timer, &temp);
+printf("3"); fflush(stdout);
if (temp) {
if (temp) {
+printf("4"); fflush(stdout);
work = 1;
goto again;
}
work = 1;
goto again;
}
@@
-112,6
+117,7
@@
again:
FD_ZERO(&writeset);
FD_ZERO(&exceptset);
FD_ZERO(&writeset);
FD_ZERO(&exceptset);
+printf("5"); fflush(stdout);
/* prepare read and write fdsets */
lcr_fd = fd_first;
while(lcr_fd) {
/* prepare read and write fdsets */
lcr_fd = fd_first;
while(lcr_fd) {
@@
-123,6
+129,7
@@
again:
FD_SET(lcr_fd->fd, &exceptset);
lcr_fd = lcr_fd->next;
}
FD_SET(lcr_fd->fd, &exceptset);
lcr_fd = lcr_fd->next;
}
+printf("6"); fflush(stdout);
if (unlock)
unlock();
if (unlock)
unlock();
@@
-138,6
+145,7
@@
again:
*global_change = 0;
return 1;
}
*global_change = 0;
return 1;
}
+printf("7"); fflush(stdout);
/* fire timers */
#if 0
/* fire timers */
#if 0
@@
-146,6
+154,7
@@
again:
/* call registered callback functions */
restart:
/* call registered callback functions */
restart:
+printf("8"); fflush(stdout);
unregistered = 0;
lcr_fd = fd_first;
while(lcr_fd) {
unregistered = 0;
lcr_fd = fd_first;
while(lcr_fd) {
@@
-164,10
+173,12
@@
restart:
FD_CLR(lcr_fd->fd, &exceptset);
}
if (flags) {
FD_CLR(lcr_fd->fd, &exceptset);
}
if (flags) {
+printf("9"); fflush(stdout);
work = 1;
lcr_fd->cb(lcr_fd, flags, lcr_fd->cb_instance, lcr_fd->cb_index);
if (unregistered)
goto restart;
work = 1;
lcr_fd->cb(lcr_fd, flags, lcr_fd->cb_instance, lcr_fd->cb_index);
if (unregistered)
goto restart;
+printf("-"); fflush(stdout);
return 1;
}
lcr_fd = lcr_fd->next;
return 1;
}
lcr_fd = lcr_fd->next;