I'm not an experienced C/C++ programmer at all. In fact I haven't looked at it since college. My primary background is in Java, but currently I'm spending most of my days with php, perl and now python, which I love.
Anyway, my employer has presented me with a new problem to solve. The backend of one of our major web sites generates .eps files, which go directly to press. Currently this backend is written in Perl, runs on linux, uses free libraries, and the jobs are executed as a batch process within cron. It worked beautifully in the early days of the site. Now that the demand on the system has increased dramatically, the perl code is not only too slow, but also too resource intensive. The client is unhappy about the performance. Depending on the size of the order, it can take twenty minutes for the print file to end up on the press.
Firstly we plan on moving the code to a more powerful machine. Secondly we want to abandon the cron job, and code a daemon that would probe for new orders and immediately dump them into a processing queue with each job in the queue executing in its own thread. Currently the jobs are executed in a single process on a single processor machine.
My question is this. How safe is C++ development on linux? I've heard horror stories about thread-safety, buggy, non compliant compilers, and code breaking between compiler versions. Our orders are stored in a MySQL database, and the mysql++ libraries are not thread-safe. What does everyone suggest? A purely C solution and abandon C++ thread safety issues (I'm not really big on this one). Take the leap into C++ development on linux with threads. Stick with what I know, and try to implement the system in java....finally, abandon threading on linux with C++ and fork a new proccess for each job.