Patch from Eric Norum <eric@cls.usask.ca> to fix bug reported by

Ian Lance Taylor <ian@airs.com>:

    Ian Lance Taylor wrote:
    >
    > In rtems-19990528, sbwait sets SB_WAIT in sb_flags.  sowakeup checks
    > it.  Why doesn't socket_select set it?
    >
    > I don't know that this is a bug--I haven't tried to create a test
    > case.  However, it certainly looks odd.
    >
    > Ian

    Yes, there's a bug there.  Sorry about that.
    It was introduced when I did some cleanup on the sleep/wakeup handling
    in rtems_glue.c.
This commit is contained in:
Joel Sherrill
1999-06-11 14:06:13 +00:00
parent 9a6d32b08b
commit 0643693198
4 changed files with 8 additions and 0 deletions

View File

@@ -56,12 +56,14 @@ socket_select (struct socket *so, int which, rtems_id tid)
case FREAD:
if (soreadable(so))
return (1);
so->so_rcv.sb_flags |= SB_WAIT;
so->so_rcv.sb_sel.si_pid = tid;
break;
case FWRITE:
if (sowriteable(so))
return (1);
so->so_rcv.sb_flags |= SB_WAIT;
so->so_snd.sb_sel.si_pid = tid;
break;

View File

@@ -56,12 +56,14 @@ socket_select (struct socket *so, int which, rtems_id tid)
case FREAD:
if (soreadable(so))
return (1);
so->so_rcv.sb_flags |= SB_WAIT;
so->so_rcv.sb_sel.si_pid = tid;
break;
case FWRITE:
if (sowriteable(so))
return (1);
so->so_rcv.sb_flags |= SB_WAIT;
so->so_snd.sb_sel.si_pid = tid;
break;

View File

@@ -56,12 +56,14 @@ socket_select (struct socket *so, int which, rtems_id tid)
case FREAD:
if (soreadable(so))
return (1);
so->so_rcv.sb_flags |= SB_WAIT;
so->so_rcv.sb_sel.si_pid = tid;
break;
case FWRITE:
if (sowriteable(so))
return (1);
so->so_rcv.sb_flags |= SB_WAIT;
so->so_snd.sb_sel.si_pid = tid;
break;