process_ncinput: fix ictx->isize check

pull/2166/head
nick black 3 years ago
parent 37cb5adb87
commit c3545a4b40
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC

@ -1235,7 +1235,7 @@ process_input(const unsigned char* buf, int buflen, ncinput* ni){
}
}
// FIXME input error stat
// FIXME extract modifiers, mice
// FIXME extract modifiers
return 0;
}
@ -1244,7 +1244,7 @@ process_input(const unsigned char* buf, int buflen, ncinput* ni){
static int
process_ncinput(inputctx* ictx, const unsigned char* buf, int buflen){
pthread_mutex_lock(&ictx->ilock);
if(ictx->ivalid == sizeof(ictx->ivalid)){
if(ictx->ivalid == ictx->isize){
pthread_mutex_unlock(&ictx->ilock);
logwarn("blocking on input output queue (%d+%d)\n", ictx->ivalid, buflen);
return 0;
@ -1393,6 +1393,8 @@ block_on_input(inputctx* ictx){
// don't loop around this call without some kind of readiness notification.
static void
read_inputs_nblock(inputctx* ictx){
// FIXME also need to wake up if our output queues have space that has
// opened up for us to write into, lest we deadlock with full buffers...
block_on_input(ictx);
// first we read from the terminal, if that's a distinct source.
read_input_nblock(ictx->termfd, ictx->tbuf, sizeof(ictx->tbuf),

Loading…
Cancel
Save