Fresco/Berlin/include/Berlin DesktopImpl.hh,1.12,1.13 ScreenManager.hh,1.26,1.27
Neil John Pilgrim <[email protected]>
| Newsgroups | gmane.comp.video.fresco.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvs/fresco/Fresco/Berlin/include/Berlin
In directory purcel:/tmp/cvs-serv29796/Berlin/include/Berlin
Modified Files:
DesktopImpl.hh ScreenManager.hh
Log Message:
- Hitting ESC on desktop should now exit server cleanly (no inf-loops/crashes)
- Hitting Ctrl-C on controlling terminal of server should now exit it cleanly
- On exiting cleanly, server references are unpublished
=> Closes bug82 and bug126
Index: DesktopImpl.hh
===================================================================
RCS file: /cvs/fresco/Fresco/Berlin/include/Berlin/DesktopImpl.hh,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- DesktopImpl.hh 29 May 2002 06:49:38 -0000 1.12
+++ DesktopImpl.hh 23 Jan 2003 00:43:00 -0000 1.13
@@ -26,6 +26,7 @@
#include <Fresco/Desktop.hh>
#include <Berlin/ControllerImpl.hh>
#include <Berlin/RefCountVar.hh>
+#include <Prague/Sys/Thread.hh>
class WindowImpl;
@@ -33,7 +34,7 @@
public ControllerImpl
{
public:
- DesktopImpl(CORBA::ORB_ptr, Layout::Stage_ptr);
+ DesktopImpl(CORBA::ORB_ptr, Layout::Stage_ptr, Prague::Semaphore &);
virtual ~DesktopImpl();
virtual void body(Fresco::Graphic_ptr);
virtual Fresco::Graphic_ptr body();
@@ -52,6 +53,7 @@
private:
RefCount_var<Layout::Stage> _stage;
CORBA::ORB_var _orb;
+ Prague::Semaphore & my_shutdown_semaphore;
};
#endif
Index: ScreenManager.hh
===================================================================
RCS file: /cvs/fresco/Fresco/Berlin/include/Berlin/ScreenManager.hh,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- ScreenManager.hh 29 May 2002 06:49:38 -0000 1.26
+++ ScreenManager.hh 23 Jan 2003 00:43:00 -0000 1.27
@@ -51,9 +51,11 @@
//. This method redraws the damaged regions of the screen.
//. The DrawTraversal gets started here!
void repair();
- //. Main event loop.
- void run();
+ //. Start the gui thread
+ void start();
private:
+ static void *run_thread(void *);
+ void run();
Fresco::Graphic_var _screen; //.< The graphic that is managed.
EventManager *_emanager;
Fresco::DrawingKit_var _drawing; //.< The DrawingKit used to update this screen.
@@ -61,6 +63,7 @@
Impl_var<RegionImpl> _tmpDamage; //.< Temporary copy of _theDamage
Impl_var<DrawTraversalImpl> _traversal;
Prague::Mutex _mutex;
+ Prague::Thread my_thread;
};
#endif