mirror of
https://github.com/janet-lang/janet
synced 2024-12-26 16:30:26 +00:00
Fixed janet_loop1_impl stream use after dealloc
This commit is contained in:
parent
c3e28bc924
commit
89debac8f6
@ -1969,6 +1969,7 @@ void janet_loop1_impl(int has_timeout, JanetTimestamp timeout) {
|
|||||||
JanetAsyncStatus status3 = JANET_ASYNC_STATUS_NOT_DONE;
|
JanetAsyncStatus status3 = JANET_ASYNC_STATUS_NOT_DONE;
|
||||||
JanetAsyncStatus status4 = JANET_ASYNC_STATUS_NOT_DONE;
|
JanetAsyncStatus status4 = JANET_ASYNC_STATUS_NOT_DONE;
|
||||||
state->event = pfd;
|
state->event = pfd;
|
||||||
|
JanetStream *stream = state->stream;
|
||||||
if (mask & POLLOUT)
|
if (mask & POLLOUT)
|
||||||
status1 = state->machine(state, JANET_ASYNC_EVENT_WRITE);
|
status1 = state->machine(state, JANET_ASYNC_EVENT_WRITE);
|
||||||
if (mask & POLLIN)
|
if (mask & POLLIN)
|
||||||
@ -1983,7 +1984,6 @@ void janet_loop1_impl(int has_timeout, JanetTimestamp timeout) {
|
|||||||
status4 == JANET_ASYNC_STATUS_DONE)
|
status4 == JANET_ASYNC_STATUS_DONE)
|
||||||
janet_unlisten(state, 0);
|
janet_unlisten(state, 0);
|
||||||
/* Close the stream if requested and no more listeners are left */
|
/* Close the stream if requested and no more listeners are left */
|
||||||
JanetStream *stream = state->stream;
|
|
||||||
if ((stream->flags & JANET_STREAM_TOCLOSE) && !stream->state) {
|
if ((stream->flags & JANET_STREAM_TOCLOSE) && !stream->state) {
|
||||||
janet_stream_close(stream);
|
janet_stream_close(stream);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user