Threading on dual processors


2004-02-26 03:48:25 PM
cppbuilder50
Hi!
We have implemented a utility that plays events at a predefined rate.
We are using Borland C++ Builder 6.0, no service packs and ACE on
Windows 2000. To make sure that events take place at the right time we
use ACE to schedule them, i.e. with Reactor::schedule_timer. We have
developed on one processor PC and recently started testing on dual
processor PC. On the dual processor PCs we have seen that the GUI
doesn't have the same response time as on the one processor PC,
especially when we play events at high rate. Sometimes the GUI hangs
completely, not responding to any input. The application still seems
to execute however, playing events. Is there any known difficulties
when migrating to dual processors using Borland and ACE?
Our application have three treads with the same priority, one for the
GUI, one for general management and one for reading events from disc.
All threads seem to get their chare of processor time. However ACE
uses Windows events to schedule our events. Can the Windows event
queue get "overflowed", not managing to schedule events at desired
rate?
Any help highly appreciated,
Mikael Lundqvist