![]() |
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. |
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. |
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.