#9 Enables notification for Windows synchronization objects

open
nobody
None
5
2006-03-23
2006-03-23
Matthias Seemann
No

************* Patch description **************

Modifies the main message loop to include Windows
synchronization objects (waitable events), which are
thread handles, console inputs, mutexes, processes,
semaphores, events etc.. (see e.g. the Win32-API on
MsgWaitForMultipleObjects)
The callback functions for these synchronization
objects are conveniently realized by boost::signal
objects. (See Application::addWaitEvent for more
information)

- patches SmartWin 1.0.2 (CVS version from 20.03.06)
(Note for SmartWin 2.0 nothing much changes, just
replace every ocurrence of tstring by
SmartUtil::tstring, and #include "SmartString.h" by
#include "SmartUtil.h", and AsciiGuaranteed by
SmartUtil::AsciiGuaranteed.)

- was build with boost::signals and boost::bind of 1.33.1
Note at present (2.0 Beta) SmartWin still uses boost
1.33.0 (see boost/version.hpp) and neither the
boost::signals nor the boost::bind modules are part of
SmartWin's boost directory. Therefore you need boost!
Now it comes to which boost version you will need:
Since I had a few compilation errors when building the
SmartWin libs upon boost 1.33.1,
I used the boost 1.33.0 fragments in the SmartWin
library together with the boost::signals
and boost::bind modules of boost 1.33.1! To fix the
resulting linker errors I even overwrote the
boost/version.hpp 1.33.0 header file with the
boost/version.hpp 1.33.1 header file. This is all a
jumble - please, please make SmartWin switch to a new
boost version !!!!

- usage example is provided in main.cpp
This is simply the HelloSmartWinWorld example from the
unit tests directory doing the GUI stuff with an
example of two events. It is shown how to wait upon the
termination of a process, launched from your
application, and how to wait for file size changes in
the applications directory (tick the check box for that).

First patch I submitted, so please comment.

Semmel

Discussion

  • Logged In: YES
    user_id=1481229

    Original patch was missing implementation in the 'game loop'.
    This is included now.
    An example is provided as modified TicTacToe program.

     
  • Synchronization objects in the game loop too