Of course, one thing you can't do with the "end" approach is wait on multiple things at once. Like you could with a:
void mir_wait_for_all(MirWaitHandle **wait_handle);
This is one of Windows' strengths, generalizing the Event concept so you can wait on different types of events. Similar for Unix/Linux if everything you're waiting on is a select'able file descriptor.
Of course, one thing you can't do with the "end" approach is wait on multiple things at once. Like you could with a: for_all( MirWaitHandle **wait_handle);
void mir_wait_
This is one of Windows' strengths, generalizing the Event concept so you can wait on different types of events. Similar for Unix/Linux if everything you're waiting on is a select'able file descriptor.