Original Post
I've designed a program that uses OpenAL to stream long sounds. But there seems a problem. I created the context with ALC API, then I queued four buffers for a source, then set up a multimedia timer using timeSetEvent with a callback function. In the callback function, I first check for thread reentrance (The multimedia timer runs in its own thread). if not, check if any buffer is processed. Then unqueue the buffer and fill it with new data and queue it again. The original thread no longer uses any OpenAL API calls. But after about 30 seconds, The program crashes in oal_wrap.dll. I was confused. I tried not using the timeSetEvent, but instead, service the buffer in the original thread using an INFINITE loop. No error occured. It seems that the buffer service program must run in the same thread that you created the context. I'll say again: There is no calls that access the same context simutaneously. Is it a bug?