@@ -626,7 +626,7 @@ VSND_GEN_TX_QUEUE_HANDLER(flush, 0);
626626 IIF (WRITE ) \
627627 (/* enque frames */ \
628628 virtio_snd_prop_t * props = & vsnd_props [stream_id ]; \
629- props -> lock .buf_ev_notity ++ ; \
629+ props -> lock .buf_ev_notity -- ; \
630630 pthread_cond_signal (& props -> lock .writable );, /* flush queue */ \
631631 ) \
632632 \
@@ -1038,7 +1038,7 @@ static void __virtio_snd_rx_frame_dequeue(void *out,
10381038 fprintf (stderr , "((( rx_frame_deque buf_ev_notity %d" " rx_ev_start %d\n" ,
10391039 props -> lock .buf_ev_notity ,
10401040 rx_ev_start );
1041- while (props -> lock .buf_ev_notity < 1 && rx_ev_start != 1 ) {
1041+ while (!( props -> lock .buf_ev_notity > 0 && rx_ev_start == 1 ) ) {
10421042 pthread_cond_wait (& props -> lock .readable , & props -> lock .lock );
10431043 }
10441044
@@ -1246,7 +1246,7 @@ static void __virtio_snd_rx_frame_enqueue(void *payload,
12461246 virtio_snd_prop_t * props = & vsnd_props [stream_id ];
12471247
12481248 pthread_mutex_lock (& props -> lock .lock );
1249- fprintf (stderr , ")) rx_frame enque buf_ev_notity %d" , props -> lock .buf_ev_notity );
1249+ fprintf (stderr , ")) rx_frame enque buf_ev_notity %d\n " , props -> lock .buf_ev_notity );
12501250 while (props -> lock .buf_ev_notity > 0 ) {
12511251 pthread_cond_wait (& props -> lock .writable , & props -> lock .lock );
12521252 }
@@ -1279,7 +1279,7 @@ static void __virtio_snd_rx_frame_enqueue(void *payload,
12791279 node -> pos = 0 ;
12801280 list_push (& node -> q , & props -> buf_queue_head );
12811281
1282- props -> lock .buf_ev_notity -- ;
1282+ props -> lock .buf_ev_notity ++ ;
12831283 pthread_cond_signal (& props -> lock .readable );
12841284 pthread_mutex_unlock (& props -> lock .lock );
12851285 fprintf (stderr , "enque end\n" );
0 commit comments