Problem with hyperthreading and Indy

Giganews Newsgroups
Subject: Problem with hyperthreading and Indy
Posted by:  Miguel Colom (miguel…@_NOSPAM_arrakis_dot_es)
Date: Thu, 12 Aug 2004


    I've written a server with Borland Delphi5 using Indy 9.00.14
as part of a bigger system that doesn't work properly when
hypertheading is enabled, so if someone has some experience of using
Delphi5 and Indy in hyperthreaded Pentium4 or SMP machines, I would
appreciate your help.

The machine over the servers execute is an Intel Pentium 4 at 3.20Ghz,
2 GB RAM, Windows XP professional with Service Pack 1.

The system consists of a main server that receives TCP connections
from clients (a kind of port mapper) and creates a new server process
that attends the client. For every client a new server is created,
with just a serving thread. The servers use the TIdTCPServer

When hyperthreading is disabled, the whole system works perfecty, but
when enabled, the server thread stops responding the client packets
(no OnExecuted is issued). It ocurrs randomly. One per hour, more or

I've sniffed some TCP packets from the net to ensure that the client
if really sending those packets, and it does.

When hyperthreading is disabled, this problem doesn't appear.

If anyone knows something about incompatibilities of Indy 9 or Delphi
5 when hyperthreading is enabled or over SMP machines, I would really
thank your feedback!