November 8th, 2013

What's the point of the various …WhenCallbackReturns functions?

The thread pool provides a number of functions named ...When­Callback­Returns. What’s the point of all these functions? Why can’t you just do the operation yourself immediately before returning? We saw Free­Library­When­Callback­Returns last time. What’s the point of the others?

Basically, the same thing as Free­Library­When­Callback­Returns. It’s a way to release a resource after execution has left the function and the callback is marked as complete. In the case of a synchronization resource, that resource may be what’s keeping somebody from unloading your DLL, or it might protect a race condition between the callback function and a function that tries to cancel the callback.

Topics
Code

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.