mirror of https://github.com/macssh/macssh.git
removed patch around select() call
This commit is contained in:
parent
c76691e390
commit
db0af1d21d
79
lsh/src/io.c
79
lsh/src/io.c
|
@ -114,65 +114,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if MACOS
|
|
||||||
|
|
||||||
int io_check_signals(struct io_backend *b);
|
|
||||||
int io_check_callouts(struct io_backend *b);
|
|
||||||
|
|
||||||
int io_check_signals(struct io_backend *b)
|
|
||||||
{
|
|
||||||
int signal_called = 0;
|
|
||||||
|
|
||||||
/* Check all flags */
|
|
||||||
if (b->signals)
|
|
||||||
{
|
|
||||||
struct lsh_signal_handler *f;
|
|
||||||
struct lsh_signal_handler **f_p;
|
|
||||||
for (f_p = &b->signals; (f = *f_p); )
|
|
||||||
{
|
|
||||||
if (!f->super.alive)
|
|
||||||
*f_p = f->next;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (*f->flag)
|
|
||||||
{
|
|
||||||
*f->flag = 0;
|
|
||||||
LSH_CALLBACK(f->action);
|
|
||||||
signal_called = 1;
|
|
||||||
}
|
|
||||||
f_p = &f->next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return signal_called;
|
|
||||||
}
|
|
||||||
|
|
||||||
int io_check_callouts(struct io_backend *b)
|
|
||||||
{
|
|
||||||
int callout_needed = 0;
|
|
||||||
|
|
||||||
/* Invoke all callouts. Clear the list first; if any callout
|
|
||||||
* installs another one, that will not be invoked until the next
|
|
||||||
* iteration. */
|
|
||||||
if (b->callouts)
|
|
||||||
{
|
|
||||||
struct lsh_callout *p;
|
|
||||||
|
|
||||||
for (p = b->callouts, b->callouts = NULL;
|
|
||||||
p; p = p->next)
|
|
||||||
if (p->super.alive)
|
|
||||||
{
|
|
||||||
callout_needed = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return callout_needed;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Backend loop */
|
/* Backend loop */
|
||||||
|
|
||||||
/* If there's nothing to do for this amount of time (ms), do
|
/* If there's nothing to do for this amount of time (ms), do
|
||||||
|
@ -193,9 +134,6 @@ int io_iter(struct io_backend *b)
|
||||||
/* int timeout; */
|
/* int timeout; */
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
#if MACOS
|
|
||||||
io_check_signals( b );
|
|
||||||
#else
|
|
||||||
/* Check all flags */
|
/* Check all flags */
|
||||||
if (b->signals)
|
if (b->signals)
|
||||||
{
|
{
|
||||||
|
@ -216,7 +154,6 @@ int io_iter(struct io_backend *b)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Invoke all callouts. Clear the list first; if any callout
|
/* Invoke all callouts. Clear the list first; if any callout
|
||||||
* installs another one, that will not be invoked until the next
|
* installs another one, that will not be invoked until the next
|
||||||
|
@ -347,21 +284,6 @@ int io_iter(struct io_backend *b)
|
||||||
assert(all_events);
|
assert(all_events);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if MACOS
|
|
||||||
res = poll(fds, nfds, 0);
|
|
||||||
if (!res)
|
|
||||||
{
|
|
||||||
gc_maybe(&b->super, 0);
|
|
||||||
while (!res)
|
|
||||||
{
|
|
||||||
res = poll(fds, nfds, 0);
|
|
||||||
if ( !res && (io_check_signals(b) || io_check_callouts(b)) )
|
|
||||||
res = EINTR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
gc_maybe(&b->super, 1);
|
|
||||||
#else
|
|
||||||
res = poll(fds, nfds, IDLE_TIME);
|
res = poll(fds, nfds, IDLE_TIME);
|
||||||
|
|
||||||
if (!res)
|
if (!res)
|
||||||
|
@ -371,7 +293,6 @@ int io_iter(struct io_backend *b)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
gc_maybe(&b->super, 1);
|
gc_maybe(&b->super, 1);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue