home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
listpm4.zip
/
source
/
appmain.cpp
next >
Wrap
C/C++ Source or Header
|
1998-04-22
|
2KB
|
62 lines
/*
listPM list files under Presentation Manager. Uses Open Class Libarary.
Copyright (C) 1998 Paul Elliott
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Paul Elliott
11900 Metric Blvd #J-181
Austin Tx 78758-3117
pelliott@io.com
*/
#include "appmain.hpp"
/*
* Universal main routine.
* solves the following problem:
* when a processes' main threads ends it kill all sub threads
* reguardless of weather they have more work to do.
* This main routine solves this by waiting for all threads be for exiting.
* it starts a main thread specified by user, then waits for all threads.
* also it loads the argc and argv arguements into current application
* before starting a thread that must be defined by user which will
* do program main work.
* program must define MainThreadFn::run()
* which is code to do the work of the program.
*
*/
int main ( int argc, char * argv [] )
{
// set arguments into the application.
IApplication::current().setArgs( argc, argv );
// processing for main thread here.
// create and start main thread
IThread main_thread ( new MainThreadFn );
// new NainThreadFn will be stored into managed pointer
// so it will be deleted when this thread exits.
// if we have started threads, we must wait for them
// because otherwise the will be killed when main thread exits.
IThread::current().waitForAllThreads();
return 0;
};