From b882fe4e40fc81a1c66cb1703259c46ce5ab4612 Mon Sep 17 00:00:00 2001 From: nick black Date: Sun, 1 Dec 2019 23:56:24 -0500 Subject: [PATCH] poll() on write() EAGAIN --- src/lib/libav.c | 4 ++-- src/lib/notcurses.c | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lib/libav.c b/src/lib/libav.c index 2dfd51a90..0af2d1cde 100644 --- a/src/lib/libav.c +++ b/src/lib/libav.c @@ -102,7 +102,7 @@ AVFrame* ncvisual_decode(struct ncvisual* nc, int* averr){ return NULL; } }while(!have_frame); -print_frame_summary(nc->codecctx, nc->frame); +//print_frame_summary(nc->codecctx, nc->frame); #define IMGALLOCALIGN 32 const int targformat = AV_PIX_FMT_RGBA; nc->swsctx = sws_getCachedContext(nc->swsctx, @@ -135,7 +135,7 @@ print_frame_summary(nc->codecctx, nc->frame); fprintf(stderr, "Error applying scaling (%s)\n", av_err2str(*averr)); return NULL; } -print_frame_summary(nc->codecctx, nc->oframe); +//print_frame_summary(nc->codecctx, nc->oframe); #undef IMGALLOCALIGN av_frame_unref(nc->frame); return nc->oframe; diff --git a/src/lib/notcurses.c b/src/lib/notcurses.c index 304ddd277..491aa6b4f 100644 --- a/src/lib/notcurses.c +++ b/src/lib/notcurses.c @@ -1032,6 +1032,14 @@ blocking_write(int fd, const char* buf, size_t buflen){ }else{ written += w; } + if(written < buflen){ + struct pollfd pfd = { + .fd = fd, + .events = POLLOUT, + .revents = 0, + }; + poll(&pfd, 1, -1); + } }while(written < buflen); return 0; }