1
0
forked from aniani/vim

patch 8.1.1851: crash when sound_playfile() callback plays sound

Problem:    Crash when sound_playfile() callback plays sound.
Solution:   Invoke callback later from event loop.
This commit is contained in:
Bram Moolenaar
2019-08-15 23:05:49 +02:00
parent 5dd143e223
commit 28e67e0c14
9 changed files with 127 additions and 20 deletions

View File

@@ -459,12 +459,22 @@ ui_wait_for_chars_or_timer(
}
if (due_time <= 0 || (wtime > 0 && due_time > remaining))
due_time = remaining;
# ifdef FEAT_JOB_CHANNEL
if ((due_time < 0 || due_time > 10L)
# ifdef FEAT_GUI
&& !gui.in_use
# if defined(FEAT_JOB_CHANNEL) || defined(FEAT_SOUND_CANBERRA)
if ((due_time < 0 || due_time > 10L) && (
# if defined(FEAT_JOB_CHANNEL)
(
# if defined(FEAT_GUI)
!gui.in_use &&
# endif
(has_pending_job() || channel_any_readahead()))
# ifdef FEAT_SOUND_CANBERRA
||
# endif
# endif
&& (has_pending_job() || channel_any_readahead()))
# ifdef FEAT_SOUND_CANBERRA
has_any_sound_callback()
# endif
))
{
// There is a pending job or channel, should return soon in order
// to handle them ASAP. Do check for input briefly.