| version 1.89, 2003/09/15 00:22:20 |
version 1.90, 2003/09/22 12:59:58 |
| Line 1507 sogetopt(struct socket *so, int level, i |
|
| Line 1507 sogetopt(struct socket *so, int level, i |
|
| void |
void |
| sohasoutofband(struct socket *so) |
sohasoutofband(struct socket *so) |
| { |
{ |
| struct proc *p; |
fownsignal(so->so_pgid, SIGURG, POLL_PRI, POLLPRI|POLLRDBAND, so); |
| ksiginfo_t ksi; |
|
| memset(&ksi, 0, sizeof(ksi)); |
|
| ksi.ksi_signo = SIGURG; |
|
| ksi.ksi_band = POLLPRI|POLLRDBAND; |
|
| ksi.ksi_code = POLL_PRI; |
|
| |
|
| if (so->so_pgid < 0) |
|
| kgsignal(-so->so_pgid, &ksi, so); |
|
| else if (so->so_pgid > 0 && (p = pfind(so->so_pgid)) != 0) |
|
| kpsignal(p, &ksi, so); |
|
| selwakeup(&so->so_rcv.sb_sel); |
selwakeup(&so->so_rcv.sb_sel); |
| } |
} |
| |
|