fixed: synchronization issue

git-svn-id: svn://kolibrios.org@1024 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2009-02-06 14:10:54 +00:00
parent 56356c8065
commit bb204a2689

View File

@ -679,6 +679,8 @@ proc wave_out stdcall, str:dword,src:dword,size:dword
mov [edx+STREAM.out_rp], eax mov [edx+STREAM.out_rp], eax
mov [edx+STREAM.out_count], 0 mov [edx+STREAM.out_count], 0
.fill: .fill:
cli
mov ecx, [edx+STREAM.in_free] mov ecx, [edx+STREAM.in_free]
test ecx, ecx test ecx, ecx
jz .wait jz .wait
@ -716,7 +718,9 @@ proc wave_out stdcall, str:dword,src:dword,size:dword
mov [state_saved], 1 mov [state_saved], 1
@@: @@:
stdcall refill, edx stdcall refill, edx
.skip: .skip:
sti
mov edx, [str] mov edx, [str]
mov [edx+STREAM.flags], SND_PLAY mov [edx+STREAM.flags], SND_PLAY
cmp [eng_state], SND_PLAY cmp [eng_state], SND_PLAY
@ -726,6 +730,7 @@ proc wave_out stdcall, str:dword,src:dword,size:dword
mov [eng_state], SND_PLAY mov [eng_state], SND_PLAY
jmp .main_loop jmp .main_loop
.wait: .wait:
sti
mov edx, [str] mov edx, [str]
mov eax, [edx+STREAM.notify_event] mov eax, [edx+STREAM.notify_event]
mov ebx, [edx+STREAM.notify_id] mov ebx, [edx+STREAM.notify_id]