Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   Simple multi-threading (http://www.velocityreviews.com/forums/t621526-simple-multi-threading.html)

howa 06-21-2008 02:44 PM

Simple multi-threading
 
Currently I have a single threaded server, developed using C, serving
multiple client at the same time, now I want a new feature:

a. I need to execute a particular program at some point, e.g.
email.exe
b. the email.exe might need some time to finish, so it block my main
program
c. I don't need to collect the output from email.exe, just best-effort-
executed is okay

Without changing my program to a multi-threaded program, I am not sure
if it is recommended to execute the email.exe using system + at
command.

I mean if it is scalable and reliable.


Thanks.

Jerry Coffin 06-21-2008 03:40 PM

Re: Simple multi-threading
 
In article <e4556b25-c388-424b-925e-
8a428013638d@d19g2000prm.googlegroups.com>, howachen@gmail.com says...

[ starting an external program asynchronously ... ]

> Without changing my program to a multi-threaded program, I am not sure
> if it is recommended to execute the email.exe using system + at
> command.
>
> I mean if it is scalable and reliable.


There's no particular reason is shouldn't work, but it's not what I'd
recommend -- I'd probably call CreateProcess, though you could consider
ShellExecute, ShellExecuteEx, WinExec, etc. Using these you can fairly
easily detect a truly catastrophic failure, such as the executable
you're trying to use not existing, while still avoiding waiting for it
to finish executing or anything like that.

--
Later,
Jerry.

The universe is a figment of its own imagination.

James Kanze 06-21-2008 11:38 PM

Re: Simple multi-threading
 
On Jun 21, 4:44 pm, howa <howac...@gmail.com> wrote:
> Currently I have a single threaded server, developed using C, serving
> multiple client at the same time, now I want a new feature:


> a. I need to execute a particular program at some point, e.g.
> email.exe
> b. the email.exe might need some time to finish, so it block my main
> program
> c. I don't need to collect the output from email.exe, just best-effort-
> executed is okay


> Without changing my program to a multi-threaded program, I am not sure
> if it is recommended to execute the email.exe using system + at
> command.


> I mean if it is scalable and reliable.


I'm not too sure what the question is. If the system supports
it, you can definitely start a program in background using the
system command; something like ``system( "mail &" )'' will work
on all Unix systems I know. (Actually, it won't, because
without any furthre arguments, "mail" is interactive. But if
you give it the name of a file to be sent, and where to send it,
there's no problem.) I can hardly imagine that the situation
would be different with any other OS (but I don't know offhand
how to start a program in background using system under
Windows).

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


All times are GMT. The time now is 07:25 PM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57