mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 23:18:21 +00:00
udp: fix poll
This commit is contained in:
@@ -221,8 +221,11 @@ static int udp_recv(socket_t *socket, sockaddr_t *addr, void *buffer, size_t cou
|
|||||||
|
|
||||||
int revents = internalpoll(socket, &desc.data[0], POLLIN);
|
int revents = internalpoll(socket, &desc.data[0], POLLIN);
|
||||||
|
|
||||||
if (revents)
|
if (revents) {
|
||||||
|
poll_leave(&desc);
|
||||||
|
poll_destroydesc(&desc);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (flags & V_FFLAGS_NONBLOCKING) {
|
if (flags & V_FFLAGS_NONBLOCKING) {
|
||||||
e = EAGAIN;
|
e = EAGAIN;
|
||||||
@@ -312,10 +315,7 @@ socket_t *udp_createsocket() {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
SPINLOCK_INIT(socket->ringbufferlock);
|
SPINLOCK_INIT(socket->ringbufferlock);
|
||||||
|
|
||||||
socket->socket.ops = &socketops;
|
socket->socket.ops = &socketops;
|
||||||
socket->socket.state = SOCKET_STATE_UNBOUND;
|
|
||||||
MUTEX_INIT(&socket->socket.mutex);
|
|
||||||
socket->socket.type = SOCKET_TYPE_UDP;
|
|
||||||
return (socket_t *)socket;
|
return (socket_t *)socket;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user